解密"top"命令

譯者: geekpi發表於2022-11-28

當對伺服器的效能好奇時,我第一個想到的是"top"命令。top不是最好的,它不是一個長期的快照,但是它提供了伺服器的一個不錯的時間點快照,並且試著提供了告訴"現在在發生什麼?"。不幸地,如果你沒有深入瞭解不同顯示域的意義,top的輸出很容易被誤解。

我不會完整解讀top命令的man page,當你和時間和意願時,它一直在那等著你。我想要做的是指出一些我如何得到系統的快速概況的幾個要點,並希望得到我接下來該怎麼做的指示。top是我在故障排除時的第一站,但這很少會是我唯一的一站。

top命令我第一個看的是平均負載(load average),它在右上角的螢幕上。平均負載的計算是基於統計蒐集到的數量,但是通常可以認為是CPU被請求工作的數量。如果你的機器有一個單核CPU,那麼平均負載是1就意味著機器滿載的,並且有足夠的能力在取樣時間內完成任務。同樣地,如果平均負載是2,那對單核的CPU是超載的,並需要2個可用核心才能在同樣的取樣時間內完成的要求的任務。隨著8、16、32核的發售,我會在判斷平均負載的時候就要注意一下。比如我需要去檢測時,我會在top裡按了數字"1",這會列出所有CPU核列表,這樣我就可以得到一個快速計數用於比較負載。

我檢查的第二項是上面列出來的內容的第9列,標記著"%CPU"那個。對這一列的解釋是很模糊的:

任務所分享的上次螢幕重新整理後的CPU執行時間,以全部的CPU時間百分比表示。在一個真正的SMP(多處理器)環境中,如果'Irix mode'是關閉的,top會在'Solaris mode'下執行,這裡一個任務的cpu使用率將除以全部的CPU數量。你可以用'I'(大寫字母I)這個互動命令觸發Irix或Solaris模式。

一點也不清楚,是麼?這裡要記住的主要意思是,如果單個程式由於某個原因或者其他因素佔用率升高,那麼他很有可能會以%CPU很高的數字顯示在top的第一行。

我下一個注意到的區域是"Cpu(s):"這一行,在頭部資訊的中間。特別地,我對%us、sy%、%id、和%wa感興趣,它們分別是使用者程式、系統程式、空閒時間和CPU用於等待I/O流執行的時間比例。這個百分比應該接近於0,高於5%時需要密切關注。

最後,我想要看看系統up時間,這顯示在左上角。如果我對一臺伺服器有疑問,並且這臺伺服器最近重啟過,這裡可能會發現一些什麼,或許是一個守護程式沒有啟動。

這些檢查只需要幾秒。如果我只是觀察,我可能讓top執行幾分鐘並觀察程式、CPU和負載,但是通常地我很快地進入和退出top。top是給你一個系統健康概況的那些奇妙系統管理員工具之一,並允許你快速診斷潛在的問題。


via: http://ostatic.com/blog/deciphering-top

譯者:geekpi 校對:wxy

 

本文由 LCTT 原創翻譯,Linux中國 榮譽推出