916
魔兽
Linux系统小技巧(2):利用ps工具统计CPU消耗高的进程和统计消耗CPU的百分比
CPU消耗高往往是系统异常的一种表现。因为平常检查系统运行有哪些进程,都是使用ps工具。因此,出现这种情况时,如果能够通过ps工具搜寻出CPU消耗高的线程,则对进一步搜寻线索或者排查应该有帮助。
下面我们讨论两个相关的小技巧。
首先,我们得了解一下进程的概念。我们都很熟悉进程了,那么,线程是什么呢?引用Andrew S. Tanenbaum的话,就是
进程认为自己独占一台主机;线程认为自己独占一颗CPU。
所以,一个进程可能包含多个线程。但是考察CPU消耗问题,只考虑进程而不考虑线程是不够的。就是说,我们纵是得给ps命令加上“-T”选项。
为了便于按照CPU消耗的情况排序,我们也通过“-o”定制ps输出的字段,以确保CPU消耗占比字段是第一个字段。
列出消耗高的线程
命令如下
LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | grep -v CPU | sort -n -r | head -20
统计线程消耗的总的CPU
命令如下
{ LANG=C ps -eT -o%cpu,pid,tid,ppid,comm | grep -v CPU | sort -n -r | cut -d ' ' -f 2 | xargs -I{} echo -n "{} + " && echo ' 0'; } | bc -l
最后更新:2017-07-17 16:44:29