Linux

頂級命令,系統專欄

  • April 12, 2011

我對 linux 不是很好,但我確實很享受有限的接觸。我們使用虛擬化的紅帽伺服器進行軟體開發,我要做的一件事就是檢查誰在佔用 CPU,看看我們可以如何嘗試避免它。我可以很容易地破譯使用者和程序,但是如果系統列正在使用(比如說)50.8% 的 CPU,我怎樣才能找出它在做什麼,並嘗試將其最小化?我收集它都是內部核心的東西,但它似乎至少執行了 20%,而且通常更高。這是一個範例輸出:

245 processes: 232 sleeping, 8 running, 4 zombie, 1 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
          total   47.9%    0.0%   50.8%   0.3%     0.7%    0.0%    0.0%
          cpu00   68.9%    0.0%   29.2%   0.3%     1.3%    0.0%    0.0%
          cpu01   26.8%    0.0%   72.5%   0.3%     0.1%    0.0%    0.0%
Mem:  3816924k av, 3795652k used,   21272k free,       0k shrd,  266548k buff
                  2836408k actv,  541432k in_d,   58992k in_c
Swap: 2097136k av,       0k used, 2097136k free                 3080380k

 PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
23447 romanmur  25   0  6896 6896   356 R    33.4  0.1   0:09   1 bzip2
23961 tomjose   25   0  1076 1076   960 S     5.4  0.0   0:00   1 make_headers.
23887 paulhewl  25   0  3996 3996   348 R     4.4  0.1   0:00   0 bzip2
3902 romanmur  15   0  4112 4108  1628 S     2.1  0.1   0:23   0 smbd
23446 romanmur  15   0   708  708   616 S     0.5  0.0   0:00   1 tar
24541 damianwy  24   0  1776 1776   960 S     0.4  0.0   0:00   0 sh
24493 root      24  -1  1372 1372  1100 R <   0.3  0.0   0:00   1 X
1771 root      15   0  1108 1108   496 S     0.2  0.0  14:26   1 cmaperfd
23262 root      15   0  1308 1308   884 R     0.2  0.0   0:03   1 top
15209 paulhewl  15   0   488  488   428 S     0.2  0.0   0:00   1 tee
2719 richardp  15   0  6108 6104  2108 S     0.1  0.1   1:02   0 smbd
23857 paulhewl  22   0  1900 1900   652 S     0.1  0.0   0:00   1 make
23886 paulhewl  19   0   712  712   624 S     0.1  0.0   0:00   0 tar
24431 root      23   0  1052 1052   936 S     0.1  0.0   0:00   1 startx
24521 paulhewl  24   0  1056 1056   896 S     0.1  0.0   0:00   1 sh
24523 paulhewl  25   0   416  416   344 R     0.1  0.0   0:00   1 mips-linux-gc

謝謝!

我對這種困境表示同情。

top很精彩,但也有點難以理解,主要是因為系統是如此復雜。例如,如果您有一個雙核 CPU,則 CPU 以 100% 的速度執行一個命令實際上並不是問題 - 這只是意味著一個命令正在完全使用一個核心,但另一個核心應該能夠接管並且立即執行其他命令。

系統載入的一個好的起點(一目了然)是手冊頁中最右邊的三個數字(w如果您的頂部沒有顯示這個,請鍵入) (同樣適用於)。它們基本上是系統在處理隊列中的下一個命令之前需要多長時間…… 1.01 秒、3.26 秒等。首先,我會比其他細節更關注這些值告訴您系統何時忙或不忙。w``system load averages for the past 1, 5, and 15 minutes``top

上面的輸出顯示這bzip2是您拍攝快照時 CPU 的最高使用者。

我推荐一些關於解釋系統的 IO、RAM 和 CPU 監控工具的進一步閱讀。

以下是一些希望簡化搜尋的起點:頂部列SysStat 和其他工具以及更有效地使用頂部

引用自:https://serverfault.com/questions/258655