使用Linux 系统,我们十分关心进程占用内存、cpu等的使用情况,该文章介绍如何查看linux下最消耗CPU、内存的进程方法。

CPU占用最多的前10个进程

ps auxw | head -1; ps auxw | sort -rn -k3 | head -10

内存消耗最多的前10个进程

ps auxw | head -1; ps auxw | sort -rn -k4 | head -10

虚拟内存使用最多的前10个进程

ps auxw | head -1; ps auxw | sort -rn -k5 | head -10

统计所有的进程数(包括light-weight process (LWP))

ps h -Led -o user | sort | uniq -c | sort -n

其他方法

ps auxw --sort=rss
ps auxw --sort=%cpu

参数说明

MEM 进程的内存占用率,MAJFL is the major page fault count

VSZ 进程所使用的虚存的大小

RSS 进程使用的驻留集大小或者是实际内存的大小(RSS is the “resident set size” meaning physical memory used)

TTY 与进程关联的终端(tty)

  串行端口终端(/dev/ttySn)
  伪终端(/dev/pty/) 
  控制终端(/dev/tty) 
  控制台终端(/dev/ttyn,   /dev/console) 
  虚拟终端(/dev/pts/n) 

STAT 检查的状态:进程状态使用字符表示的

D    不可中断     Uninterruptible sleep (usually IO)
I    idle空闲
R    正在运行,或在队列中的进程 
S    处于休眠状态 
T    停止或被追踪 
Z    僵尸进程 
W    进入内存交换(从内核2.6开始无效) 
X    死掉的进程 

<    高优先级 
N    低优先级 
L    有些页被锁进内存 
s    包含子进程 
+    位于后台的进程组; 
l    多线程,克隆线程  multi-threaded (using CLONE_THREAD, like NPTL pthreads do)