@[toc]shell
TOP是一個動態顯示過程,便可以經過用戶按鍵來不斷刷新當前狀態.若是在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.緩存
下面是使用top命令來進行性能檢測的截圖:函數
第1行: top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30 第1行是任務隊列信息,其參數以下:工具
內容 | 含義 |
---|---|
05:43:27 | 表示當前時間 |
up 4:52 | 系統運行時間 格式爲時:分 |
2 users | 當前登陸用戶數 |
load average: 0.58, 0.41, 0.30 | 系統負載,即任務隊列的平均長度。 三個數值分別爲 1分鐘、5分鐘、15分鐘前到如今的平均值。 |
load average: 若是這個數除以邏輯CPU的數量,結果高於5的時候就代表系統在超負荷運轉了。
性能
第2行: Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie 第3行: %Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 第二、3行爲進程和CPU的信息
當有多個CPU時,這些內容可能會超過兩行,其參數以下:spa
內容 | 含義 |
---|---|
159 total | 進程總數 |
1 running | 正在運行的進程數 |
158 sleeping | 睡眠的進程數 |
0 stopped | 中止的進程數 |
0 zombie | 殭屍進程數 |
37.0 us | 用戶空間佔用CPU百分比 |
3.7 sy | 內核空間佔用CPU百分比 |
0.0 ni | 用戶進程空間內改變過優先級的進程佔用CPU百分比 |
59.3 id | 空閒CPU百分比 |
0.0 wa | 等待輸入輸出的CPU時間百分比 |
0.0 hi | 硬中斷(Hardware IRQ)佔用CPU的百分比,CPU服務於硬中斷所耗費的時間總額 |
0.0 si、0.0 st | CPU服務於軟中斷所耗費的時間總額、Steal Time |
第4行: KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers 第5行: KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem 第四、5行爲內存信息
其參數以下:命令行
內容 | 含義 |
---|---|
KiB Mem: 1530752 total | 物理內存總量 |
1481968 used | 使用的物理內存總量 |
48784 free | 空閒內存總量 |
70988 buffers | 用做內核緩存的內存量 |
KiB Swap: 3905532 total | 交換區總量 |
267544 used | 使用的交換區總量 |
3637988 free | 空閒交換區總量 |
617312 cached Mem | 緩衝的交換區總量。 |
上述最後提到的緩衝的交換區總量,這裏解釋一下,所謂緩衝的交換區總量,即內存中的內容被換出到交換區,然後又被換入到內存,但使用過的交換區還沒有被覆蓋,該數值即爲這些內容已存在於內存中的交換區的大小。相應的內存再次被換出時可沒必要再對交換區寫入。
計算可用內存數有一個近似的公式:
第四行的free + 第四行的buffers + 第五行的cachedcode
列名 | 含義 |
---|---|
PID | 進程id |
PPID | 父進程id |
RUSER | Real user name |
UID | 進程全部者的用戶id |
USER | 進程全部者的用戶名 |
GROUP | 進程全部者的組名 |
TTY | 啓動進程的終端名。不是從終端啓動的進程則顯示爲 ? |
PR | 優先級 |
NI | nice值。負值表示高優先級,正值表示低優先級 |
P | 最後使用的CPU,僅在多CPU環境下有意義 |
%CPU | 上次更新到如今的CPU時間佔用百分比 |
TIME | 進程使用的CPU時間總計,單位秒 |
TIME+ | 進程使用的CPU時間總計,單位1/100秒 |
%MEM | 進程使用的物理內存百分比 |
VIRT | 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES |
SWAP | 進程使用的虛擬內存中,被換出的大小,單位kb |
RES | 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA |
CODE | 可執行代碼佔用的物理內存大小,單位kb |
DATA | 可執行代碼之外的部分(數據段+棧)佔用的物理內存大小,單位kb |
SHR | 共享內存大小,單位kb |
nFLT | 頁面錯誤次數 |
nDRT | 最後一次寫入到如今,被修改過的頁面數。 |
S | 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/中止 Z=殭屍進程 |
COMMAND | 命令名/命令行 |
WCHAN | 若該進程在睡眠,則顯示睡眠中的系統函數名 |
Flags | 任務標誌 |
能夠經過下面的快捷鍵來更改顯示內容: 更改顯示內容經過 f 鍵能夠選擇顯示的內容(按 f 鍵以後會顯示列的列表,按 a-z 便可顯示或隱藏對應的列,最後按回車鍵肯定) 按 o 鍵能夠改變列的顯示順序(按小寫的 a-z 能夠將相應的列向右移動,而大寫的 A-Z 能夠將相應的列向左移動,最後按回車鍵肯定) 按大寫的 F 或 O 鍵,而後按 a-z 能夠將進程按照相應的列進行排序,而大寫的 R 鍵能夠將當前的排序倒轉.cdn
1.top命令默認值顯示前面一部分的進程,如果想要查看所有的進程信息,則須要使用命令:top -ab -n 1
,在這個命令中,a表示按內存倒序排列,b表示將全部列輸出,n表示只執行一次。blog
2.在使用top -ab -n 1
將全部進程信息輸出以後,可使用AWK等相似工具統計信息,例如:統計出COMMAND爲httpd的全部進程佔用的內存。
3.也可使用命令top -an -n 1 | grep httpd
,查看全部httpd的進程信息,以下圖:
top // 每隔5秒顯式全部進程的資源佔用狀況
top -d 2 // 每隔2秒顯式全部進程的資源佔用狀況
top -c // 每隔5秒顯式進程的資源佔用狀況,並顯示進程的命令行參數(默認只有進程名)
top -p 12345 -p 6789// 每隔5秒顯示pid是12345和pid是6789的兩個進程的資源佔用狀況
top -d 2 -c -p 123456 // 每隔2秒顯示pid是12345的進程的資源使用狀況,並顯式該進程啓動的命令行參數
複製代碼