判断占用系统资源的进程

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
 
posted @ 2018-04-07 19:10  Fuzengjie  阅读(476)  评论(0编辑  收藏  举报