腾讯云CentOS7.4服务器添加swap分区

自己的腾讯云服务器搭建的zabbix监控中,提示Lack of free swap space

腾讯的官方说明在这:

https://cloud.tencent.com/document/product/362/3597

查看机器上面状态如下:

 

Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕,这里我们只能采用后者。

服务器的物理内存是2G的,按照1~2倍原则,我将swap文件设置为4GB。

新建的4G swap路径:/mnt/swap(路径和交换文件名称可以自定义)

步骤如下:

1、创建用于交换分区的文件:dd if=/dev/zero of=/mnt/swap bs=4096 count=1024000(这条命令运行完后稍等一会)

2、设置交换分区文件:mkswap /mnt/swap

3、启用交换分区文件:swapon /mnt/swap

注:dd创建的文件总大小等于bs * count。本例是4096k * 1024000=4G。
注释:
dd:可以创建指定大小(4G)的文件
if:指定输入设备
/dev/zero:无限0资源
of:指定输出设备
bs:每个块的大小
count:块的数量

 

=========以下操作能确保 swap 更安全,且重启后有效===========

查看 vim /etc/rc.local 如果有 swapoff -a 修改为 swapon -a,我这里是没有这个的,就不管了。

vim /etc/rc.local

设置自动挂载,打开文件:vim /etc/fstab

把下面命令添加到最下面的空行。

/mnt/swap swap swap defaults 0

查看状态

swapon -s

查看内存状态

free -m

当不需要交换文件时,可以使用以下步骤将其删除:

禁用交换文件:swapoff /mnt/swap

删除交换文件:rm -f /mnt/swap

编辑vim /etc/fstab文件,删除以下内容,在系统下次引导时就不会启用交换文件了。

/mnt/swap swap swap defaults 0

 

权限设置:

chown root:root /mnt/swap

chmod 0600 /mnt/swap

 

查看 swappiness 值。

cat /proc/sys/vm/swappiness

如果为 0 ,则将其改为 10,意思是空闲内存少于 10% 时才使用 SWAP 分区

sysctl vm.swappiness=10

永久设置 swappiness,如果该文件里没有,则打开 vim /etc/sysctl.conf 配置文件追加 vm.swappiness = 10

 

重启,那些永久设置项就生效了。

swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间,swappiness=100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面。

 

参考文章:

https://help.aliyun.com/knowledge_detail/42534.html

https://cloud.tencent.com/developer/article/1141273

原文地址:https://www.cnblogs.com/opsprobe/p/10659219.html