给vps添加虚拟Swap交换分区

博客 324次浏览 收藏

在计算机的上古时代,内存很小,所以我们装Linux系统时考虑分区要提前给把交换swap分区考虑进去,在硬盘上单独分一个区转做计算机内存的交换分区

现在大家都用vps又类似回到了上古时代,特别时内存只有512M起步的,(话说,前两年的内存也不贵,为啥给用户这么抠呢)又把linux内核升级到5.0+的。你能开机,然后干啥都不畅快。

但现在vps配置的硬盘基本都SSD起步了,好一点的都时NVMe固态硬盘了。所以我就有了一个大胆的想法。在硬盘上创建一个虚拟分区文件,然后挂载到系统作为内存的交换分区。


开始之前

在开始创建之前,请先使用如下命令检查您的 Ubuntu 系统是否已经启用了 SWAP 分区:

sudo swapon --show

如果输出为空,则表示当前系统尚未启用 SWAP 空间;反之,您将看到相关反馈。

创建SWAP分区文件。您可以执行以下步骤在 Ubuntu 18.04 系统中添加 SWAP 交换文件,通过以下命令创建一个用于 swap 的文件:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

tips: 提前把容量计算好 我这个1048576 对应的 时 1GByte 的大小

执行以下命令为 swapfile 文件设置正确的权限:

sudo chmod 600 /swapfile


使用 mkswap 格式化,这个命令大家多少年没用过了

sudo mkswap /swapfile


使用以下命令激活 swap 文件:

sudo swapon /swapfile

挂载虚拟内存文件到系统

要让创建好的 swap 分区永久生效,可以将 swapfile 路径内容写入到 /etc/fstab 文件当中, 编辑该文件

/swapfile  none  swap  sw  0  0


编辑 /etc/fstab 文件示例:

~# vim /etc/fstab 

添加最后一行的内容

LABEL=cloudimg   /             ext4     defaults        0  1
LABEL=UEFI        /boot/efi     vfat     umask=0077      0  1
/swapfile        none         swap    sw             0  0


使用 swapon 或 free 命令验证 SWAP 是否处于活动状态,如下所示:

sudo swapon --show
sudo free -h


调整Swappiness值

Swappiness 是一个 Linux 内核属性,用于定义 Linux 系统使用 SWAP 空间的频率。Swappiness 值可以从 0 至 100,较低的值会让内核尽可能少的使用 SWAP 空间,而较高的值将让 Linux Kernel 能够更加积极地使用 SWAP 分区。

Ubuntu 18.04 默认的 Swappiness 值为 60,您可以使用如下命令来查看:

cat /proc/sys/vm/swappiness

如果是自己搭建的服务器,内存多的永不了就往小里调 少用虚拟内存。

sudo sysctl vm.swappiness=10

如果是虚拟vps内存少,就把数字往大了设置,多用虚拟内存,确保系统正常运行

sudo sysctl vm.swappiness=70

要让这个设置永久生效 编辑 /etc/sysctl.conf

如果要让设置在系统重启后依然有效,则必要在 /etc/sysctl.conf 文件中添加以下内容:

sudo vim /etc/sysctl.conf
## 在文件最后一行添加
vm.swappiness=70

重启系统。


移除SWAP分区

Ubuntu 24.04 要停用并删除 SWAP 文件,请按照下列步骤操作:

首先输入以下命令停用 SWAP 空间:

sudo swapoff -v /swapfile


2.在 /etc/fstab 文件中删除有效 swap 的行。

删除或注释掉

## /swapfile        none         swap    sw             0  0


3.最后执行以下命令删除 swapfile 文件:

sudo rm /swapfile


在ubuntu 24.04 server 上测试通过。


评论

登录后可以发表评论与回复。

还没有评论,来做第一个发言的人。