top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。下面詳細介紹它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 |
統計信息區前五行是系統整體的統計信息。第一行是任務隊列信息,同 uptime 命令的執行結果。其內容如下:
01:06:48 |
當前時間 |
up 1:22 |
系統運行時間,格式爲時:分 |
1 user |
當前登錄用戶數 |
load average: 0.06, 0.60, 0.48 |
系統負載,即任務隊列的平均長度。 |
第二、三行爲進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。內容如下:
Tasks: 29 total |
進程總數 |
1 running |
正在運行的進程數 |
28 sleeping |
睡眠的進程數 |
0 stopped |
停止的進程數 |
0 zombie |
殭屍進程數 |
Cpu(s): 0.3% us |
用戶空間佔用CPU百分比 |
1.0% sy |
內核空間佔用CPU百分比 |
0.0% ni |
用戶進程空間內改變過優先級的進程佔用CPU百分比 |
98.7% id |
空閒CPU百分比 |
0.0% wa |
等待輸入輸出的CPU時間百分比 |
0.0% hi |
|
0.0% si |
最後兩行爲內存信息。內容如下:
Mem: 191272k total |
物理內存總量 |
173656k used |
使用的物理內存總量 |
17616k free |
空閒內存總量 |
22052k buffers |
用作內核緩存的內存量 |
Swap: 192772k total |
交換區總量 |
0k used |
使用的交換區總量 |
192772k free |
空閒交換區總量 |
123988k cached |
緩衝的交換區總量。 |
進程信息區統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。
序號 |
列名 |
含義 |
a |
PID |
進程id |
b |
PPID |
父進程id |
c |
RUSER |
Real user name |
d |
UID |
進程所有者的用戶id |
e |
USER |
進程所有者的用戶名 |
f |
GROUP |
進程所有者的組名 |
g |
TTY |
啓動進程的終端名。不是從終端啓動的進程則顯示爲 ? |
h |
PR |
優先級 |
i |
NI |
nice值。負值表示高優先級,正值表示低優先級 |
j |
P |
最後使用的CPU,僅在多CPU環境下有意義 |
k |
%CPU |
上次更新到現在的CPU時間佔用百分比 |
l |
TIME |
進程使用的CPU時間總計,單位秒 |
m |
TIME+ |
進程使用的CPU時間總計,單位1/100秒 |
n |
%MEM |
進程使用的物理內存百分比 |
o |
VIRT |
進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES |
p |
SWAP |
進程使用的虛擬內存中,被換出的大小,單位kb。 |
q |
RES |
進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA |
r |
CODE |
可執行代碼佔用的物理內存大小,單位kb |
s |
DATA |
可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb |
t |
SHR |
共享內存大小,單位kb |
u |
nFLT |
頁面錯誤次數 |
v |
nDRT |
最後一次寫入到現在,被修改過的頁面數。 |
w |
S |
進程狀態。 |
x |
COMMAND |
命令名/命令行 |
y |
WCHAN |
若該進程在睡眠,則顯示睡眠中的系統函數名 |
z |
Flags |
任務標誌,參考 sched.h |
默認情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。
更改顯示內容通過 f 鍵可以選擇顯示的內容。按 f 鍵之後會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最後按回車鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最後按回車鍵確定。
按大寫的 F 或 O 鍵,然後按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。