1.占用大量swap的进程
方法一: for循环
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 | head
会打印出占用swap最多的前十个进程的pid
此原理是统计/proc/$pid/目录下的smaps文件中的swap大小
方法二:iotop
较直观的显示出程序占用swap的情况,但是如果swap达到100%的话,可能直接会被卡死
其他的方法 如 free -m vmstat top 等,只能看整体的使用量
2.占用大量内存的进程
方法一:ps
ps -eo pid,%mem,command | sort -k2nr | head
方法二:top htop
开top之后,按M 可查看 内存占用最大的程序
3.占用大量CPU的进程
方法一:ps
ps -eo pid,%cpu,command | sort -k2nr | head
方法二:top htop