版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.one3.cn/?p=144
今天服务器监控报警提示swap不足,这里把处理的过程和原理整理一下,希望对大家所有帮助!
一般情况下系统是不会用到swap的,一般物理内存使用在90%以上(默认是这个数,可以自行在/etc/sysctl.conf里设置vm.swappiness参数)但有的时候,内存会被缓存占用,导致系统开始使用swap空间,此时就需要清理下swap了这里先说下vm.swappiness参数,设置成vm.swappiness=10:就是说当内存使用90%以上才会使用swap空间!
登录相关服务器通过free命令发现确实使用了很大一部分,但men确还有很多,这说明swap在服务器运行过程中使用后并没有释放,下面我们对swap进行释放操作
第一步:先执行sync命令
#sync
sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息,以防止释放,sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。
第二步:(如果仅仅是清理swap的话,这一步可以不执行,如果执行,在第三步关闭swap时会使用更长的时间)
#echo 3 > /proc/sys/vm/drop_caches
此指令输入立即生效,意在释放所有缓存。
第三步:关闭swap,再开启swap
#swapoff -a 这一步因为是后台 在一点一点的释放,如果配置的swap超大,这里就等待得超久一些
#swapon -a 再开启
完成!