原文地址:http://www.php100.com/html/webkaifa/Linux/2010/1209/6997.html
top命令是linux下常用的系統分析工具,它能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows中的任務管理器。
1.top命令詳解
在console中輸入top命令後,得到的結果如下:
top - 10:09:14 up 2 min, 2 users, load average: 1.22, 0.86, 0.35 Tasks: 169 total, 2 running, 167 sleeping, 0 stopped, 0 zombie Cpu(s): 3.8%us, 1.0%sy, 0.0%ni, 94.1%id, 1.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 502048k total, 495576k used, 6472k free, 23140k buffers Swap: 1015800k total, 8k used, 1015792k free, 146060k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1849 root 20 0 149m 31m 7992 S 4.3 6.5 0:04.84 Xorg 2435 root 20 0 837m 43m 28m R 1.7 8.9 0:01.37 konsole ... |
第一行:任務隊列信息(與uptime 命令的執行結果相同)
10:09:14 當前時間 2 min系統運行時間,格式爲時:分 2 users當前登錄用戶數 load average: 1.22, 0.86, 0.35系統負載,即任務隊列的平均長度(三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值) |
第二、三行:進程和 CPU的信息。當系統有多個CPU 時,這些內容可能會超過兩行。
169 total 進程總數 2 running 正在運行的進程數 167 sleeping 睡眠的進程數 0 stopped 停止的進程數 0 zombie 殭屍進程數 3.8% us 用戶空間佔用CPU百分比 1.0% sy 內核空間佔用CPU百分比 0.0% ni 用戶進程空間內改變過優先級的進程佔用CPU百分比 94.1% id 空閒CPU百分比 1.0% wa 等待輸入輸出的CPU時間百分比 0.0% hi 0.0% si 0.0%st |
第四、五行:內存信息
502048k total 物理內存總量 495576k used 使用的物理內存總量 6472k free 空閒內存總量 23140k buffers 用作內核緩存的內存量 1015800k total 交換區總量 8k used 使用的交換區總量 1015792k free 空閒交換區總量 146060k cached 緩衝的交換區總量 |
第六行:進程信息
PID: 進程標識號 USER: 進程所有者的用戶名 PR: 進程的優先級 NI: 進程的優先級別數值(負值表示高優先級,正值表示低優先級) VIRT: 進程佔用的虛擬內存值(單位kb,VIRT=SWAP+RES) RES: 進程佔用的、未被換出的物理內存值(單位kb,RES=CODE+DATA) SHR: 進程使用的共享內存值(單位kb) S: 進程的狀態(D=不可中斷的睡眠狀態,N=進程優先級爲負值,R=運行,S=睡眠,T=跟蹤/停止,Z=殭屍進程) %CPU: 該進程佔用的CPU使用率 %MEM: 進程佔用物理內存的百分比 TIME+: 進程佔用CPU的總時間(單位1/100秒) Command: 進程的啓動命令名稱 |
注:默認情況下TOP命令僅顯示比較重要的 PID、USER、PR等列,可以通過下面的快捷鍵來更改顯示內容
通過 f 鍵可以選擇顯示的內容。按 f 鍵之後會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最後按回車鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最後按回車鍵確定。
按大寫的 F 或 O 鍵,然後按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。
可顯示的其他進程信息如下:
PPID 父進程id RUSER Real user name UID 進程所有者的用戶id GROUP 進程所有者的組名 TTY 啓動進程的終端名 P 最後使用的CPU,僅在多CPU環境下有意義 TIME 進程使用的CPU時間總計,單位秒 SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。 CODE 可執行代碼佔用的物理內存大小,單位kb DATA 可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb nFLT 頁面錯誤次數 nDRT 最後一次寫入到現在,被修改過的頁面數。 WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名 Flags 任務標誌,參考 sched.h |
2.top命令參數
top [-] [d] [p] [q] [C] [S] [s] [n]
d 指定每兩次屏幕信息刷新之間的時間間隔(單位:s) p 通過指定監控進程ID 來僅僅監控某個進程的狀態 q 該選項將使top 沒有任何延遲的進行刷新。如果調用程序有超級用戶權限,那麼top 將以 儘可能高的優先級運行 S 指定累計模式 s 使top 命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。 i 使top 不顯示任何閒置或者僵死進程。 c 顯示整個命令行而不只是顯示命令名 |
3.top交互命令
在top 命令執行過程中可以使用的一些交互命令。這些命令都是單字母的,如果在命令行中使用了s 選項, 其中一些命令可能會被屏蔽。
h 顯示幫助畫面,給出一些簡短的命令總結說明 k 終止一個進程。 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文件中 |