原文http://rockhooray.blog.51cto.com/938613/832621
一 概述
在終端中可以查看top命令的路徑和所屬軟件包。
top程序對運行的系統提供一個動態的實時的監控。它能夠顯示系統的總體信息和一些正被Linux內核管理的任務。它所顯示的系統總體信息的樣式以及任務信息顯示的樣式,順序和大小都是可以由用戶配置,而且配置信息可以重啓後永久生效。top能夠對進程操作提供一個有限的交互式界面,對個性化配置提供更多擴展性的界面。
當使用top命令時,兩個非常重要的快捷鍵就是幫助鍵(h或者?)和退出鍵(q)。也可以使用Ctrl+C退出操作。
當第一次操作top時,呈現的畫面分成四部分:彙總區域,信息欄,列標題,任務欄。
二 命令行參數
top命令有許多命令行參數。在使用參數時使用top -h 或top h都行。
-b 批處理模式操作
開啓top工作在批處理模式,這樣在需要將top的輸出信息輸出 到其他程序或文件時非常有用。在這種模式下,top不接受任何輸入操作,直到通過-n 設置的重複次數後,或者退出top才終止。
在終端中輸入top -b top將不斷重複地顯示任務信息,知道按Ctrl+C終止爲止,在終端中輸入top -b -n 10 ,top將顯示10次後終止,也就是分10個批次顯示完後就退出。
-c 命令行/程序名 開關
-d 設置延遲時間。
設置屏幕刷新的延遲時間,如在命令行輸入top -d 0.09 則屏幕將每隔0.09秒刷新。若原來的個人配置文件設置的是每隔3秒將不生效。延遲時間可以設置很小的數,但是不能是負數。
-H線程開關
在終端輸入top -H後,top將以上一次系統記得的“H"狀態的相反的狀態運行。如上次top的H狀態是off,則這次運行時H狀態就變成on了,H狀態是on時,所有的單獨的線程都會被顯示出來,但是,top是顯示一個進程的所有線程的總和。如下圖,當把"H”設爲off時,top顯示的qemu-kvm只有兩欄,把"H"設爲on時,top顯示的qemu-kvm有總共有四欄。
-i 空閒進程開關
以系統記得的“i”狀態的相反狀態啓動top。當開關是off時,空閒的或僵死的任務將不被顯示。
-n 設置重複次數
如設置top -n 5則top將屏幕刷新5次後top退出。
-u 以給定的有效的UID或用戶名啓動top
如在終端中輸入top -u wang 則只顯示用戶wang相關的進程。
-U 和-u差不多,但是-U後可以跟真實的,有效的,保存的和文件系統的UID。
-p 監視指定PID的進程
可以以-p1 -p2 -p67 的格式最多輸入20次,也可以以-p 1,2,3,4,5,6,7的格式最多跟20個PID。如果想恢復正常顯示,即顯示所有進程,不必終止或重啓top。按住“=”就可以切換了。
-s 以安全模式操作
-S 累計時間模式切換開關
三 字段和列
1.字段描述
在top的顯示頁面輸入“o”則可以看到top的字段描述
PID 進程ID
PPID 父進程ID
RUSER 當前任務所屬的真實用戶名
UID當期任務所屬的有效的用戶ID
USER當前任務所有者的有效的用戶名
GROUP當前任務所有者的有效的組名稱
TTY 控制終端
PR 當前用戶的優先級
NI nice值,負值表示高優先級,正值表示低優先級。
P 最近一次使用的CPU(在SMP環境中),用一個數字代表最後一次使用的CPU
%CPU CPU的利用率
當前任務共享從上次屏幕刷新時的CPU時間,以CPU總時間的百分比表示。在一個真實的SMP環境中,如果Irix Mode被設置成off,top將工作在Solaris Mode下,即一個任務的CPU利用率將以CPU的總數分開顯示,要切換Irix/Solaris Mode,按“I"就行。
TIME CPU時間
當前任務從開始時使用的CPU時間總和,當Cumulative mode開啓時,top將列出每個進程和它的死了的子進程使用的CPU時間。
TIME+ 顯示到百分之一秒
%MEM 一個任務當前使用的可用的物理內存百分比
VIRT Virt Image (kb)
當期任務使用的總的虛擬內存。它包括所有的執行代碼,數據,共享庫,加上被置換出的頁面和被映射但是沒被使用的頁面。
SWAP Swapped size(kb)
在一個任務中呈現的而沒有駐留的內存。這種內存是已經被置換出但是可能包含另外的非駐留的內存。這個字段的值是從虛擬內存中減去物理內存所得的。
RES Resident size (kb)
一個任務使用的未被置換出的物理內存。
CODE Code size (kb)
用於可執行代碼的虛擬內存總額
DATA Data+Stack size (kb)
用於除了可執行代碼以爲的虛擬內存總額
SHR Shared Mem size (kb)
一個任務使用的共享內存總額。它反映了可以被其他進程共享的內存總額
nFLT Page Fault count
一個任務出現的主要的頁面錯誤的數量。當一個進程試圖對當前未出現在地址空間的虛擬內存進行讀寫操作時,這將產生一個頁面錯誤。
nDRT Dirty Pages count
從上一次被寫入到磁盤且被修改的頁面數量
S 進程的狀態信息
有四種狀態
D 表示不中斷休眠
R 表示正在運行
S 表示休眠
T 表示被跟蹤或被停止
Z 表示出於僵死狀態
出於運行狀態的任務應該更確切任務是準備後將要運行。該狀態的顯示和top命令設定屏幕刷新時間和該任務的優先級有關。
COMMAND 顯示命令行或程序名
該字段顯示開啓一個用戶的命令或與之相關的程序名。可以按“c”在命令行和程序名間切換。
WCHAN Sleeping in Function
Flags -- Task Flags
2.選擇和排列列名
按下f可以選擇列名,按下o可以選擇列名排列順序。顯示的結果和屏幕寬度有關,若寬度不夠有些字段顯示不會來。需要注意的是交互式命令要區分大小寫,F和f有不同的功能。
按下f後,對應字段名稱前面的字母大寫表示開啓顯示,小寫表示關閉顯示,按相應的字母就可以切換。這裏開啓所有的字段顯示。
按下o後,可以對字段的顯示順序進行設置,按住對應的大寫字母把相應的字段向左移,小寫向右移。這裏要將COMMAND字段顯示到最左端,則按住大寫的X移到最左上面。
3.CPU的狀態
CPU的狀態顯示在彙總區域,從上次刷新時間到現在的時間段裏以百分比顯示。
us 用戶使用的CPU時間,運行用戶的沒有被賦予優先級的進程所耗費的時間
sy 系統使用的CPU時間,運行內核和它的進程所耗費的時間
ni 運行用戶的被賦予優先級的進程所耗費的時間
wa CPU等待I/O完成所耗費的時間總額
hi CPU服務於硬中斷所耗費的時間總額
si CPU服務於軟中斷所耗費的時間總額
st Steal Time
四 交互式命令
1.全局命令
全局交互式命令可以用在全屏模式和分屏顯示模式。但是,有些命令不能用於安全模式。
Enter 或 Space 即按回車鍵或者空格鍵。刷新屏幕,如果top設置了一個比價大的延遲時間,按下這兩個鍵可以查看當前的狀態。
?或 h 可以顯示幫助信息
= 解除顯示指定進程的限制。當按i只顯示正在運行的進程,而不顯示出於睡眠狀態的進程時,按下=可以解除這種限制,恢復默認顯示。或在終端以top -p 運行top只顯示指定進程時,按下=可以恢復默認顯示。
A 在全屏模式和分屏顯示模式間切換
B 開啓/關閉粗體顯示
d 設置延遲時間間隔。
按下d後可以看到原來設置的延遲時間,可以設置成任何數字,但是不能是負數,設置的間隔越小,屏幕刷新越快,太快的話將不能輸入任何命令。
G 轉到下個窗口
I Irix/Solaris_Mode_toggle
u 選擇一個用戶
選擇一個用的UID或者是用戶名,只顯示給定用戶的進程。UID只能是有效的UID。
U 同u,不過UID可以是真實的,有效的,保存的或文件系統的UID。
k 殺死一個任務進程
按k後,如果想取消,在提示輸入pid時,直接按回車,在提示輸入signal時,輸入0。
r 對一個進程重新設置優先級,正數表示低優先級,負數表示高優先級。
W 將當前設置寫入到配置文件,下次啓動top時將和當前設置一樣。
Z 設置顏色,改變當前窗口或所有窗口的顏色分佈。
Ctrl+L 擦除並且重寫屏幕。
h或者? 顯示幫助畫面,給出一些簡短的命令總結說明。
k 終止一個進程。系統將提示用戶輸入需要終止的進程PID,以及需要發送給該進程什麼樣的信號。一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被屏蔽。
i 忽略閒置和僵死進程。這是一個開關式命令。
q 退出程序。
r 重新安排一個進程的優先級別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10。
S 切換到累計模式。
s 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位爲s。如果有小數,就換算成m s。輸入0值則系統將不斷刷新,默認值是5 s。需要注意的是如果設置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。
f或者F 從當前顯示中添加或者刪除項目。
o或者O 改變顯示項目的順序。
l 切換顯示平均負載和啓動時間信息。
m 切換顯示內存信息。
t 切換顯示進程和CPU狀態信息。
c 切換顯示命令名稱和完整命令行。
M 根據駐留內存大小進行排序。
P 根據CPU使用百分比大小進行排序。
T 根據時間/累計時間進行排序。
2 彙總區域命令
彙總區域的交互式命令在全屏模式和分屏顯示模式都適用。
l (小寫的l)設置是否顯示負載的平均值,系統運行的時間。當在全屏顯示模式下,該行顯示程序名,一般是top,在分屏顯示模式下,該行開頭顯示當前窗口的名稱。如1:Def,2:Job,3:Mem,4:Usr。