如上图,一般情况下不会用到swap的,一般物理内存使用在90%以上(默认是这个数,可以自行在/etc/sysctl.conf里设置vm.swappiness参数),但有的时候,内存会被缓存占用,导致系统开始使用swap空间,此时就需要清理下swap了
这里先说下vm.swappiness参数,设置成vm.swappiness=10:就是说当内存使用90%以上才会使用swap空间
第一步:先执行sync命令
#sync
sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息,以防止释放,sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。
第二步:关闭swap,再开户swap
#swapoff -a
#swapon -a
分析哪些进程占用swap较多:
[root@ELK_Master ~]# for i in $(ls /proc | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head
26353 2207.23M
6751 546.723M
1039 76.5078M
5984 71.9375M
31708 34.6523M
22160 33.9453M
20619 27.332M
20621 27.3242M
20620 27.2852M
20623 27.2852M