閱讀916 返回首頁    go 魔獸


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

效果如下
_2017_07_17_16_14_48

統計線程消耗的總的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_15_16

最後更新:2017-07-17 16:44:29

  上一篇:go  科大訊飛陶曉東:AI算法如何實現將信息和影像結合產生診斷結果?
  下一篇:go  7月17日雲棲精選夜讀:深度 | 兩個案例,掌握AI在大數據領域的前沿應用