查看swap占用脚本
for i in $(cd /proc;ls | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr
为什么会有swap分区,swap分区又是做什么的。
其实swap分区的作用就是将一些应用程序中不经常处理不重要的任务临时安排到swap分区里面,这样减少占用内存资源,毕竟内存资源是有限的。让内存先把紧急的经常处理的任务走完,等资源空闲了,在重新调出swap分区的任务处理。如果内存空间与swap分区的空间都满了,这时候就会导致内存溢出。内存溢出一般抓下堆栈jstack [pid] -l > jstack_file.txt ,获取堆栈文件,进行分析原因。
本文转自白羊IT51CTO博客,原文链接:http://blog.51cto.com/000011211684/2083573,如需转载请自行联系原作者