linux TOP命令各參數詳解

@[toc]shell

TOP是一個動態顯示過程,便可以經過用戶按鍵來不斷刷新當前狀態.若是在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.緩存

下面是使用top命令來進行性能檢測的截圖:函數

在這裏插入圖片描述

各參數含義

1、top前5行統計信息

第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

2、進程信息

列名 含義
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 任務標誌
默認狀況下僅顯示比較重要的 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 鍵能夠將當前的排序倒轉.cdn


3、 使用技巧

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的進程信息,以下圖:

這裏寫圖片描述

4. 經常使用命令
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的進程的資源使用狀況,並顯式該進程啓動的命令行參數
複製代碼
相關文章
相關標籤/搜索