linux top命令詳解(轉)
top命令和ps命令的基本作用是相同的,顯示系統當前的進程和其它狀況;但是top是一個動態顯示過程,即可以通過使用者按鍵來不斷重新整理目前狀態。如? 前台執行該命令,它將獨佔前台,直到使用者終止該程式為止。
比較準確的說,top命令提供了即時的對系統處理器的狀態監視。它將顯示系統中CPU最“敏感”的工作清單。該命令可以按CPU使用、記憶體使用量、執行時間對任務進行排序;而且該命令的很多特性都可以通過互動式命令或者在個人定製檔案中進行設定。在後面的介紹中將把命令參數和互動命令分開講述。
top命令文法:
top [-] [d delay] [q] [c] [s] [S] [i]
d 指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動命令來改變之。
q 該選項將使top沒有任何延遲的進行重新整理。如果調用程式有超級使用者權限,那麼top將以儘可能高的優先順序運行。
S 指定累計模式。
s 使top命令在安全模式中運行。這將去除互動命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令列而不只是顯示命令名。(進程的command列顯示進程的對應命令列或命令名)
top命令結果詳解:
top命令顯示的項目很多,預設值是每5秒更新一次。顯示的各項目為:
15:06:57 up 129 days, 19:03, 5 users, load average: 1.21, 1.20, 1.25
uptime 該項顯示的是系統啟動時間、已經啟動並執行時間和三個平均負載值(最近1秒,5秒,15秒的負載值)。
222 processes: 219 sleeping, 2 running, 1 zombie, 0 stopped
processes 自最近一次重新整理以來的運行進程總數。這些進程被分為正在啟動並執行,休眠的,停止的等很多種類。
CPU states: cpu user nice system irq softirq iowait idle
total 0.9% 0.0% 27.4% 0.0% 0.0% 0.2% 71.2%
cpu00 1.9% 0.0% 19.4% 0.0% 0.0% 0.0% 78.6%
cpu01 0.0% 0.0% 33.0% 0.0% 0.0% 0.0% 66.9%
cpu02 1.9% 0.0% 22.3% 0.0% 0.0% 0.9% 74.7%
cpu03 0.0% 0.0% 35.2% 0.0% 0.0% 0.0% 64.7%
CPU states 顯示使用者模式,系統模式,優先順序進程(只有優先順序為負的列入考慮)和閑置等各種情況所佔用CPU時間的百分比。優先順序進程所消耗的時間也被列入到使用者和系統的時間中,所以總的百分比將大於100%。
Mem: 16214336k av, 15682832k used, 531504k free, 0k shrd, 215016k buff
10896844k actv, 3379680k in_d, 446432k in_c
Mem 記憶體使用量情況統計,其中包括總的可用記憶體,空閑記憶體,已用記憶體,共用記憶體和緩衝所佔記憶體的情況。
Swap: 10482404k av, 0k used, 10482404k free 14856500k cached
Swap 交換空間統計,其中包括總的交換空間,可用交換空間,已用交換空間。
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
27869 root 25 0 460M 460M 455M R 25.0 2.9 12559m 1 vmware-vmx
31819 root 16 0 6016 6016 5048 S 1.6 0.0 17573m 2 magicdev
27837 root 15 -10 460M 460M 455M S < 0.7 2.9 1328m 0 vmware-vmx
27868 root 15 -10 460M 460M 455M S < 0.3 2.9 644:35 3 vmware-vmx
PID 每個進程的ID。PPID 每個進程的父進程ID。UID 每個進程所有者的UID 。
USER 每個進程所有者的使用者名稱。
PRI 每個進程的優先順序別。
NI 該進程的優先順序值。
SIZE 該進程的代碼大小加上資料大小再加上堆棧空間大小的總數。單位是KB。
TSIZE 該進程的代碼大小。對於核心進程這是一個很奇怪的值。
DSIZE 資料和堆棧的大小。
TRS 文本駐留大小。
D 被標記為“不乾淨”的頁項目。
LIB 使用的庫頁的大小。對於ELF進程沒有作用。
RES 該進程佔用的實體記憶體的總數量,單位是KB。
SHARE 該進程使用共用記憶體的數量。
STAT 該進程的狀態。其中S代表休眠狀態;D代表不可中斷的休眠狀態;R代表運行狀態;Z代表僵死狀態;T代錶停止或跟蹤狀態。
TIME 該進程自啟動以來所佔用的總CPU時間。如果進入的是累計模式,那麼該時間還包括這個進程子進程所佔用的時間。且標題會變成CTIME。
%CPU 該進程自最近一次重新整理以來所佔用的CPU時間和總時間的百分比。
%MEM 該進程佔用的實體記憶體佔總記憶體的百分比。
COMMAND 該進程的命令名稱,如果一行顯示不下,則會進行截取。記憶體中的進程會有一個完整的命令列。
top互動命令選項
Ctrl+L 擦除並且重寫螢幕。
h或者? 顯示協助畫面,給出一些簡短的命令總結說明。
k 終止一個進程。系統將提示使用者輸入需要終止的進程PID,以及需要發送給該進程什麼樣的訊號。一般的終止進程可以使用15訊號;如果不能正常結束那就使用訊號9強制結束該進程。預設值是訊號15。在安全模式中此命令被屏蔽.
i 忽略閑置和僵死進程。這是一個開關式命令。
q 退出程式。
r 重新安排一個進程的優先順序別。
S 切換到累計模式。
s 改變兩次重新整理之間的延遲時間。系統將提示使用者輸入新的時間,單位為s。如果有小數,就換算成m s。輸入0值則系統將不斷重新整理,預設值是5 s。需要注意的是如果設定太小的時間,很可能會引起不斷重新整理,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。
f或者F 從當前顯示中添加或者刪除項目。
o或者O 改變顯示項目的順序。
l 切換顯示平均負載和啟動時間資訊。
m 切換顯示記憶體資訊。
t 切換顯示進程和CPU狀態資訊。
c 切換顯示命令名稱和完整命令列。
M 根據駐留記憶體大小進行排序。
P 根據CPU使用百分比大小進行排序。
T 根據時間/累計時間進行排序。
W 將當前設定寫入~/.toprc檔案中。這是寫top設定檔的推薦方法。