Linux中的top命令顯示系統上正在運行的進程。它是系統管理員最重要的工具之一。被普遍用於監視服務器的負載。在本篇中,咱們會探索top命令的細節。top命令是一個交互命令。在運行top的時候還能夠運行不少命令。咱們也會探索這些命令。ruby
(譯註:不一樣發行版的top命令在各類細節有不一樣,若是發現不一樣時,請讀你的幫助手冊和命令內的幫助。)服務器
首先,讓咱們瞭解一下輸出。top命令會顯示系統的不少信息。咱們須要理解不一樣部分輸出的意義:默認運行時,top命令會顯示以下輸出:工具
前幾行水平顯示了不一樣系統參數的歸納,接下來是進程和它們在列中的屬性。字體
top命令的頂部顯示與uptime命令類似的輸出。spa
這些字段顯示:命令行
當前時間3d
系統已運行的時間code
當前登陸用戶的數量orm
相應最近五、10和15分鐘內的平均負載。排序
能夠使用’l’命令切換uptime的顯示。
第二行顯示的是任務或者進程的總結。進程能夠處於不一樣的狀態。這裏顯示了所有進程的數量。除此以外,還有正在運行、睡眠、中止、殭屍進程的數量(殭屍是一種進程的狀態)。這些進程歸納信息能夠用’t’切換顯示。
下一行顯示的是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將會每秒刷新。
這會相應地切換頂部的平均負載、任務/CPU狀態和內存信息的概況顯示。
不顯示平均負載
不顯示CPU概況
不顯示內存和交換內存概況
上面三個全不顯示
用於選擇你想要顯示的字段。用’*’標記的是已選擇的。
管理顯示列
上下光標鍵在字段內導航,左光標鍵能夠選擇字段,回車或右光標鍵確認。
按'<‘移動已排序的字段到左邊,’>’則移動到右邊。
切換反向/常規排序。
切換是否顯示進程啓動時的完整路徑和程序名。
完整命令路徑
切換顯示空閒任務。
不顯示空閒命令
切換樹視圖。
樹視圖
按下’Z’向用戶顯示一個改變top命令的輸出顏色的屏幕。能夠爲8個任務區域選擇8種顏色。
定製顏色
下面顯示的是4中顏色顯示的top視圖。
彩色顯示
切換彩色,即打開或關閉彩色顯示。
切換高亮信息:’x’將排序字段高亮顯示(縱列);’y’將運行進程高亮顯示(橫行)。依賴於你的顯示設置,你可能須要讓輸出彩色來看到這些高亮。
X 和 Y高亮
顯示特定用戶的進程。你會被提示輸入用戶名。空白將會顯示所有用戶。
raghu的進程
設置最大顯示的任務數量
設置最大顯示的任務數量
top命令中最重要的一個命令之一。用於發送信號給任務(一般是結束任務)。
殺死一個任務
從新設置一個任務的調度優先級。
這些命令行選項與上面討論的命令大多相同。top的輸出能夠用命令交互操做,可是你也能夠帶參數運行top來設置你想要的效果。
-b選項以批處理模式啓動top命令。當你想要在文件中保存輸出時是頗有用的。
如上面所討論到的命令,這個選項會以上次記住的程序/命令顯示的狀態顯示(是否顯示完整路徑)。
設置top的顯示間隔(以秒計)。好比:
$ top -d 1
將會以1秒的刷新間隔啓動top。
這個選項設置top命令的上一次記住的相反的‘i’狀態。
用-n選項,你能夠設置top退出前迭代的次數。
$ top -n 3
將會在刷新輸出3次後退出。
你能夠用-p選項監控指定的PID。PID的值爲0將被做爲top命令自身的PID。
能夠用這些選項瀏覽特定用戶的進程。用戶名或者UID能夠在選項中指定。-p、-u和-U選項是互斥的,同時只能夠使用這其中一個選項。當你試圖組合使用這些選項時,你會獲得一個錯誤:
$ top -p 28453 -u raghu top: conflicting process selections (U/p/u)