top的使用:
字段的解釋:
統計信息區前五行是系統整體的統計信息:
第一行是任務隊列信息,同 uptime 命令的執行結果.其內容如下:
16:55:39 | 當前時間 |
up 57 | 系統運行時間,格式爲時:分 |
1 user | 當前登錄用戶數 |
load average: 0.00,0.01,0.05 | 系統負載,即任務隊列的平均長度. 三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值. |
第二、三行爲進程和CPU的信息,當有多個CPU時,這些內容可能會超過兩行.內容如下:
Tasks: 410 total | 進程總數 |
2 running | 正在運行的進程數 |
406 sleeping | 睡眠的進程數 |
2 stopped | 停止的進程數 |
0 zombie | 殭屍進程數 |
Cpu(s): 0.3% us | 用戶空間佔用CPU百分比 |
0.3% sy | 內核空間佔用CPU百分比 |
0.0% ni | 用戶進程空間內改變過優先級的進程佔用CPU百分比 |
99.3% id | 空閒CPU百分比 |
0.0% wa | 等待輸入輸出的CPU時間百分比 |
0.0% hi | CPU服務於硬中斷所耗費的時間總額 |
0.0% si、0.0%st | CPU服務於軟中斷所耗費的時間總額、Steal Time |
最後兩行爲內存信息.內容如下:
Mem: 1001332k total | 物理內存總量 |
581776k used | 使用的物理內存總量 |
96664k free | 空閒內存總量 |
322892k buffers | 用作內核緩存的內存量 |
Swap: 2097148k total | 交換區總量 |
0k used | 使用的交換區總量 |
2097148k free | 空閒交換區總量 |
235376k cached | 緩衝的交換區總量. 內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋, 該數值即爲這些內容已存在於內存中的交換區的大小. 相應的內存再次被換出時可不必再對交換區寫入. |
進程信息區統計信息區域的下方顯示了各個進程的詳細信息.
首先來認識一下各列的含義:
序號 | 列名 | 含義 |
1 | PID | 進程id |
2 | PPID | 父進程id |
3 | RUSER | Real user name |
4 | UID | 進程所有者的用戶id |
5 | USER | 進程所有者的用戶名 |
6 | GROUP | 進程所有者的組名 |
7 | TTY | 啓動進程的終端名.不是從終端啓動的進程則顯示爲 ? |
8 | PR | 優先級 |
9 | NI | nice值.負值表示高優先級,正值表示低優先級 |
10 | P | 最後使用的CPU,僅在多CPU環境下有意義 |
11 | %CPU | 上次更新到現在的CPU時間佔用百分比 |
12 | TIME | 進程使用的CPU時間總計,單位秒 |
13 | TIME+ | 進程使用的CPU時間總計,單位1/100秒 |
14 | %MEM | 進程使用的物理內存百分比 |
15 | VIRT | 進程使用的虛擬內存總量,單位kb,VIRT=SWAP+RES |
16 | SWAP | 進程使用的虛擬內存中,被換出的大小,單位kb. |
17 | RES | 進程使用的、未被換出的物理內存大小,單位kb,RES=CODE+DATA |
18 | CODE | 可執行代碼佔用的物理內存大小,單位kb |
19 | DATA | 可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb |
20 | SHR | 共享內存大小,單位kb |
21 | nFLT | 頁面錯誤次數 |
22 | nDRT | 最後一次寫入到現在,被修改過的頁面數. |
23 | S | 進程狀態: D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程 |
24 | COMMAND | 命令名/命令行 |
25 | WCHAN | 若該進程在睡眠,則顯示睡眠中的系統函數名 |
26 | Flags |
任務標誌,參考 sched.h |
顯示進程信息 # top
顯示完整命令 # top -c
以批處理模式顯示程序信息 # top -b
以累積模式顯示程序信息 # top -S
設置信息更新次數 top -n 2 //表示更新兩次後終止更新顯示
設置信息更新時間 # top -d 3 //表示更新週期爲3秒
顯示指定的進程信息 # top -p 139 //顯示進程號爲139的進程信息,CPU、內存佔用率等
顯示更新十次後退出 top -n 10
使用者將不能利用交談式指令來對行程下命令 top -s
將更新顯示二次的結果輸入到名稱爲 top.log 的檔案裏 top -n 2 -b < top.log