使用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 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)