概述今天收到zabbix告警。有点奇怪,swap内存占用很高,但实际内存占用并不多。我们来看一下:1.查看服务器内存根据使用情况,可以发现还有很多剩余内存,但是swap已经使用了90%。哪个进程占用太多。使用以下命令查看占用swap过多的进程:foriin`cd/proc;ls|grep"^[0-9]"|awk'$0>100'`;doawk'/Swap:/{aa=a+$2}END{print'"$i"',a/1024"M"}'/proc/$i/smaps;done|sort-k2nr3。查看进程查看pg数据库没有异常,没有任务运行。4、配置内核参数,减少swap的使用。如果内存足够大,没必要过多使用SWAP分区。您可以修改swappiness的值。当swappiness=0时,表示物理内存使用到最大,其次是swap空间。当swappiness=100时,表示swap分区被主动使用,及时将内存上的数据移动到swap空间。在Linux中,swappiness的值默认设置为60。现在一般1G的内存可以改成10,2G的内存可以改成5,甚至0。具体是这样做的:--尽量使用内存,而不是swappecho"vm.swappiness=1">>/etc/sysctl.confsysctl-p--refreshSWAP--刷新SWAP一次(将SWAP中的数据dump回内存,并清空SWAP中的数据)swapoff-a&&swapon-a--clearcachesyncecho3>/proc/sys/vm/drop_caches5.经过处理,可以发现问题已经解决。
