前提:今天发现某台主机一直报警:swap内存被用光

cetos报错“Lack of free swap space” 解决方法_物理内存

1、查看了服务器的内存情况【发现在物理内存还剩余的情况下,swap开始被使用,甚至到被用光】

[root@note1 ~]# free -h

total used free shared buff/cache available

Mem: 15G 4.9G 169M 141M 10G 10G

Swap: 4.0G 3.4G 651M

2、查看swappiness文件的值

[root@note1 ~]# cat /proc/sys/vm/swappiness

30

说明:在centos里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

两个极端,对于Centos的默认设置,这个值等于60,建议修改为10。

3、修改swappiness的值

[root@note1 ~]# sysctl vm.swappiness=10

vm.swappiness = 10


#修改配置文件,确保重启后不恢复为默认值

[root@note1 ~]# echo vm.swappiness=10 >> /etc/sysctl.conf

4、重启swap

//关闭虚拟内存

[root@note1 ~]# swapoff -a


//开启虚拟内存

[root@note1 ~]# swapon -a

5、再次查看内存情况

//关闭swap后内存情况

[root@note1 ~]# free -h

total used free shared buff/cache available

Mem: 15G 7.7G 165M 393M 7.6G 7.0G

Swap: 0B 0B 0B


// 重启swap后

[root@note1 ~]# free -h

total used free shared buff/cache available

Mem: 15G 7.7G 165M 393M 7.6G 7.0G

Swap: 4.0G 0B 4.0G