今天早上手机收到zabbix报警短信,提示lack of free swap space on(交换分区不足)
到对应的服务器查看,发现内存free加cache还有11个G没用呢,就开始使用交换分区了
初步怀疑是不是swappiness的初始值没有更改,于是进行相应的查看:
#cat /proc/sys/vm/swappiness(也可以用sysctl -q vm.swappiness查看)
看到都swappiness的值为60,初始值为60,说明没有进行过更改;
说明:在centos里面,swappiness的值的大小对如何使用swap分区是有着很大的联系
swappiness=0:表示只使用物理内存,不使用swap,当物理内存用光时,用OOM kill杀死分值低的进程。
swappiness=1:表示当物理内存用光时,使用swap内存,不杀死相关进程。
swappiness=60:系统默认值。
swappiness=100:表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
对于Centos的默认设置,这个值等于60,建议修改为10。
修改swappiness:
#sysctl vm.swappiness=10
但是这只是临时的修改,如果系统重启会恢复默认的值60,所有还需要做下一步:
#echo vm.swappiness=10 >> /etc/sysctl.conf
重新加载虚拟内容:
#swapoff -a(关闭虚拟内存)
#swapon -a(开户虚拟内存)
注:当虚拟内存已经被使用后,swapoff -a操作会将交换分区中的数据写到物理内存中,此过程有点慢
重新查看:
本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1894847如需转载请自行联系原作者
weilovepan520