linux中的top指令顯示系統上正在運作的程序。它是系統管理者最重要的工具之一。被廣泛用于監視伺服器的負載。在本篇中,我們會探索top指令的細節。top指令是一個互動指令。在運作top的時候還可以運作很多指令。我們也會探索這些指令。
(譯注:不同發行版的top指令在各種細節有不同,如果發現不同時,請讀你的幫助手冊和指令内的幫助。)
<a target="_blank"></a>
首先,讓我們了解一下輸出。top指令會顯示系統的很多資訊。我們需要了解不同部分輸出的意義:預設運作時,top指令會顯示如下輸出:

預設顯示
前幾行水準顯示了不同系統參數的概括,接下來是程序和它們在列中的屬性。
顯示運作時間
top指令的頂部顯示與uptime指令相似的輸出。
這些字段顯示:
目前時間
系統已運作的時間
目前登入使用者的數量
相應最近5、10和15分鐘内的平均負載。
可以使用'l'指令切換uptime的顯示。
任務概況
第二行顯示的是任務或者程序的總結。程序可以處于不同的狀态。這裡顯示了全部程序的數量。除此之外,還有正在運作、睡眠、停止、僵屍程序的數量(僵屍是一種程序的狀态)。這些程序概括資訊可以用't'切換顯示。
cpu狀态顯示
下一行顯示的是cpu狀态。 這裡顯示了不同模式下的所占cpu時間的百分比。這些不同的cpu時間表示:
us, user: 運作(未調整優先級的) 使用者程序的cpu時間
sy,system: 運作核心程序的cpu時間
ni,niced:運作已調整優先級的使用者程序的cpu時間
wa,io wait: 用于等待io完成的cpu時間
hi:處理硬體中斷的cpu時間
si: 處理軟體中斷的cpu時間
st:這個虛拟機被hypervisor偷去的cpu時間(譯注:如果目前處于一個hypervisor下的vm,實際上hypervisor也是要消耗一部分cpu處理時間的)。
可以使用't'指令切換顯示。
記憶體使用情況
接下來兩行顯示記憶體使用率,有點像'free'指令。第一行是實體記憶體使用,第二行是虛拟記憶體使用(交換空間)。
實體記憶體顯示如下:全部可用記憶體、已使用記憶體、空閑記憶體、緩沖記憶體。相似地:交換部分顯示的是:全部、已使用、空閑和緩沖交換空間。
記憶體顯示可以用'm'指令切換。
任務資訊列
在橫向列出的系統屬性和狀态下面,是以列顯示的程序。不同的列代表下面要解釋的不同屬性。
預設上,top顯示這些關于程序的屬性:
pid
程序id,程序的唯一辨別符
user
程序所有者的實際使用者名。
pr
程序的排程優先級。這個字段的一些值是'rt'。這意味這這些程序運作在實時态。
ni
程序的nice值(優先級)。越小的值意味着越高的優先級。
virt
程序使用的虛拟記憶體。
res
駐留記憶體大小。駐留記憶體是任務使用的非交換實體記憶體大小。
shr
shr是程序使用的共享記憶體。
s
這個是程序的狀态。它有以下不同的值:
d - 不可中斷的睡眠态。
r – 運作态
s – 睡眠态
t – 被跟蹤或已停止
z – 僵屍态
%cpu
自從上一次更新時到現在任務所使用的cpu時間百分比。
%mem
程序使用的可用實體記憶體百分比。
time+
任務啟動後到現在所使用的全部cpu時間,精确到百分之一秒。
command
運作程序所使用的指令。
還有許多在預設情況下不會顯示的輸出,它們可以顯示程序的頁錯誤、有效組群組id和其他更多的資訊。
我們之前說過top是一個互動指令。上一節我們已經遇到了一些指令。這裡我們會探索更多的指令。
首先,我們可以用'h'或者'?'顯示互動指令的幫助菜單。
幫助菜單
top指令預設在一個特定間隔(3秒)後重新整理顯示。要手動重新整理,使用者可以輸入回車或者空格。
這個指令在全屏和交替模式間切換。在交替模式下會顯示4個視窗(譯注:分别關注不同的字段):
def (預設字段組)
job (任務字段組)
mem (記憶體字段組)
usr (使用者字段組)
這四組字段共有一個獨立的可配置的概括區域和它自己的可配置任務區域。4個視窗中隻有一個視窗是目前視窗。目前視窗的名稱顯示在左上方。(譯注:隻有目前視窗才會接受你鍵盤互動指令)
交替顯示
我們可以用'a'和'w'在4個 視窗間切換。'a'移到後一個視窗,'w'移到前一個視窗。用'g'指令你可以輸入一個數字來選擇目前視窗。
在交替顯示中選擇視窗
一些重要資訊會以加粗字型顯示。這個指令可以切換粗體顯示。
關閉粗體
當按下'd'或's'時,你将被提示輸入一個值(以秒為機關),它會以設定的值作為重新整理間隔。如果你這裡輸入了1,top将會每秒重新整理。
重新整理間隔l
這會相應地切換頂部的平均負載、任務/cpu狀态和記憶體資訊的概況顯示。
不顯示平均負載
不顯示cpu概況
不顯示記憶體和交換記憶體概況
上面三個全不顯示
用于選擇你想要顯示的字段。用'*'标記的是已選擇的。
管理顯示列
上下光标鍵在字段内導航,左光标鍵可以選擇字段,回車或右光标鍵确認。
按'<'移動已排序的字段到左邊,'>'則移動到右邊。
切換反向/正常排序。
切換是否顯示程序啟動時的完整路徑和程式名。
完整指令路徑
切換顯示空閑任務。
不顯示空閑指令
切換樹視圖。
樹視圖
按下'z'向使用者顯示一個改變top指令的輸出顔色的螢幕。可以為8個任務區域選擇8種顔色。
定制顔色
下面顯示的是4中顔色顯示的top視圖。
彩色顯示
切換彩色,即打開或關閉彩色顯示。
切換高亮資訊:'x'将排序字段高亮顯示(縱列);'y'将運作程序高亮顯示(橫行)。依賴于你的顯示設定,你可能需要讓輸出彩色來看到這些高亮。
x 和 y高亮
顯示特定使用者的程序。你會被提示輸入使用者名。空白将會顯示全部使用者。
raghu的程序
設定最大顯示的任務數量
top指令中最重要的一個指令之一。用于發送信号給任務(通常是結束任務)。
殺死一個任務
重新設定一個任務的排程優先級。
這些指令行選項與上面讨論的指令大多相同。top的輸出可以用指令互動操作,但是你也可以帶參數運作top來設定你想要的效果。
-b選項以批處理模式啟動top指令。當你想要在檔案中儲存輸出時是很有用的。
如上面所讨論到的指令,這個選項會以上次記住的程式/指令顯示的狀态顯示(是否顯示完整路徑)。
設定top的顯示間隔(以秒計)。比如。
将會以1秒的重新整理間隔啟動top。
這個選項設定top指令的上一次記住的相反的'i'狀态。
用-n選項,你可以設定top退出前疊代的次數。
将會在重新整理輸出3次後退出。
你可以用-p選項監控指定的pid。pid的值為0将被作為top指令自身的pid。
可以用這些選項浏覽特定使用者的程序。使用者名或者uid可以在選項中指定。-p、-u和-u選項是互斥的,同時隻可以使用這其中一個選項。當你試圖組合使用這些選項時,你會得到一個錯誤:
lctt(linux中國翻譯組)募新公告 lctt已經擁有二十餘名活躍成員,并歡迎更多的linux志願者加入我們的團隊。
原文釋出時間為:2013-12-08
本文來自雲栖社群合作夥伴“linux中國”