前提:今天发现某台主机一直报警:swap内存被用光
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
参考链接:https://blog.51cto.com/davidbj/1172879