使用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
CPU低、Load高
ps -e -L h o state,cmd | awk '{if($1=="R"||$1=="D"){print $0}}' | sort | uniq -c | sort -k 1nr
其他方法
ps auxw --sort=rss
ps auxw --sort=%cpu
参数说明
MEM
进程的内存占用率,MAJFL is the major page fault countVSZ
进程所使用的虚存的大小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)