CentOS7系统添加SWAP,为服务器增加虚拟内存提示服务器稳定

查看系统状态

执行free可以看到当前系统内存使用状态

执行

free

返回如下结果

              total        used        free      shared  buff/cache   available
Mem:         497940      318220       26272       33352      153448       80264
Swap:             0       
0           0

可以看到swap是0,也就是我们还没有使用swap。但物理内存仅剩26M.

接下来查看磁盘使用情况,保证剩余空间充足,执行

df -h

返回如下结果

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        220M     0  220M   0% /dev
tmpfs           244M     0  244M   0% /dev/shm
tmpfs           244M   33M  211M  14% /run
tmpfs           244M     0  244M   0% /sys/fs/cgroup
/dev/xvda1       20G  2.8G   18G  14% /
overlay          20G  2.8G   18G  14% /var/lib/docker/overlay2/07635fa2c036cd24b4d6423a459ae2123e44c2ff0b440c57ec417a1aeff42d70/merged
overlay          20G  2.8G   18G  14% /var/lib/docker/overlay2/372b71b24fb58016b41de6ab06a35700a72e190187836dc7dade0240790c406d/merged
tmpfs            49M     0   49M   0% /run/user/1000

可以看到Avail即可用空间充足

创建SWAP

使用dd命令创建单个文件1M,总大小为1G的swap分区(其中的count等于想要的块的数量,bs*count=文件大小,例如2G仅需将1024修改为2048)

dd if=/dev/zero of=/root/swapfile bs=1M count=1024

格式化为交换分区文件(建立swap的文件系统):

mkswap /root/swapfile

启用交换分区文件(启用swap文件):

swapon /root/swapfile

使系统开机时自启用,在文件/etc/fstab中添加一行:

/root/swapfile swap swap defaults 0 0

再次使用free命令查看,输出如下结果,看到swap创建成功

[root@ip-172-26-6-100 centos]# free
              total        used        free      shared  buff/cache   available
Mem:         497940      311536       35216       33304      151188       89796
Swap:       1048572        6656     1041916

扩展内容

查看swap使用率

cat /proc/sys/vm/swappiness

返回值30,即30%使用率,每1G内存使用300M SWAP

我们可以临时调整 swappiness 的值到一个合适的参数,从而达到最优化使用 Swap 的目的。这里我们将其设为50。
使用 sysctl 命令:

sysctl vm.swappiness=50

停止交换分区

swapoff /data/swapfile

删除/etc/fstab中的自动挂载

vim /etc/fstab
# /data/swapfile swap swap defaults 0 0

删除分区文件

rm /data/swapfile
发表新评论