top命令用法
top命令經常用來監控linux的系統狀況,是常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用情況。
top的使用方式 top [-d number] | top [-bnp]
參數解釋:
-d:number代表秒數,表示top命令顯示的頁面更新一次的間隔。默認是5秒。 -b:以批次的方式執行top。 -n:與-b配合使用,表示需要進行幾次top命令的輸出結果。 -p:指定特定的pid進程號進行觀察。
在top命令顯示的頁面還可以輸入以下按鍵執行相應的功能(注意大小寫區分的):
1 產看cpu 個數,及各核的使用情況 P 按照 進程 cpu 的使用率排序 (默認情況) M 按照 內存的使用情況排序 q 退出 shift +< 上一頁 shift +> 下一頁 r 調整nice 值 renice f 選擇顯示那一列 F,O 按那一列排序 k 殺死一個進程 c 顯示command詳細信息
top各輸出參數含義
下面是使用top命令來進行性能檢測的截圖
一、top前5行統計信息
第1行:top - 21:09:34 up 2 days, 9:49, 2 users, load average: 3.90, 3.19, 2.49
第1行是任務隊列信息,其參數如下:
內容 | 含義 |
21:09:34 | 表示當前時間 |
up 2 days, 9:49 | 表示系統運行時間 |
2 users | 當前登錄用戶數 |
load average: 3.90, 3.19, 2.49 | 系統負載,即任務隊列的平均長度。 三個數值分別為 1分鍾、5分鍾、15分鍾前到現在的平均值。 |
load average: 如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第2行:Tasks: 532 total, 2 running, 515 sleeping, 0 stopped, 15 zombie
第3行:%Cpu(s): 14.1 us, 5.6 sy, 0.0 ni, 80.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第2、3行為進程和CPU的信息
當有多個CPU時,這些內容可能會超過兩行,其參數如下:
內容 | 含義 |
532 total | 進程總數 |
2 running | 正在運行的進程數 |
515 sleeping | 睡眠的進程數 |
0 stopped | 停止的進程數 |
15 zombie | 僵屍進程數 |
14.1 us | 用戶空間占用CPU百分比,這個值是當前機器邏輯CPU占用百分比累加值/CPU邏輯核數所得,可以使用top 1命令查看各核CPU使用情況 |
5.6 sy | 內核空間占用CPU百分比,這個值是當前機器邏輯CPU占用百分比累加值/CPU邏輯核數所得,可以使用top 1命令查看各核CPU使用情況 |
0.0 ni | 用戶進程空間內改變過優先級的進程占用CPU百分比 |
80.3 id | 空閑CPU百分比 |
0.0 wa | 等待輸入輸出的CPU時間百分比 |
0.0 hi | 硬中斷(Hardware IRQ)占用CPU的百分比 |
0.0 si | 軟中斷(Software Interrupts)占用CPU的百分比 |
0.0 st |
第4行:KiB Mem : 32780544 total, 7673504 free, 8104836 used, 17002204 buff/cache
第5行:KiB Swap: 0 total, 0 free, 0 used. 24058588 avail Mem
第4、5行為內存信息
其參數如下:
內容 | 含義 |
32780544 total | 物理總內存 |
7673504 free | 空閑內存總量 |
8104836 used | 使用的物理內存總量 |
17002204 buff/cache | 用作內核緩存的內存量 |
KiB Swap | 交換空間 |
24058588 avail Mem | 代表可用於進程下一次分配的物理內存數量 |
緩沖的交換區總量即內存中的內容被換出到交換區,而后又被換入到內存,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在於內存中的交換區的大小。相應的內存再次被換出時可不必再對交換區寫入。
計算可用內存數有一個近似的公式:
第四行的free + 第四行的buffers + 第五行的cached
二、進程信息
列名 | 含義 |
PID | 進程ID |
USER | 進程所有者的用戶名 |
PR | 優先級 |
NI | nice值,負值表示高優先級,正值表示低優先級 |
VIRT | 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES |
SWAP | 進程使用的虛擬內存中,被換出的大小,單位kb |
RES | 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA |
S | 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程 |
%CPU | 上次更新到現在的CPU時間占用百分比 |
%MEM | 進程使用的物理內存百分比 |
TIME+ | 進程使用的CPU時間總計,單位1/100秒 |
COMMAND | 命令行 |
其他
默認進入top時,各進程是按照CPU的占用量來排序的。
1、在top基本視圖中,按鍵盤數字“1”可以監控每個邏輯CPU的狀況:
2.附一張服務器資源使用量很高top命令監控指標圖, load average/邏輯CPU數量>5,各邏輯CPU空閑CPU百分比都為0。
參考文獻
1、https://blog.csdn.net/quiet_girl/article/details/50668126
2、http://www.zhimengzhe.com/linux/298422.html
3、https://blog.csdn.net/yjclsx/article/details/81508455