本篇文章給大家?guī)砹薼inux關(guān)于top命令的相關(guān)知識(shí),其中包括了top命令的用法和各輸出參數(shù)的含義,希望對(duì)大家有幫助。
top命令用法
top命令經(jīng)常用來監(jiān)控linux的系統(tǒng)狀況,是常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用情況。
top的使用方式 top [-d number] | top [-bnp]
參數(shù)解釋:
-d:number代表秒數(shù),表示top命令顯示的頁面更新一次的間隔。默認(rèn)是5秒。 -b:以批次的方式執(zhí)行top。 -n:與-b配合使用,表示需要進(jìn)行幾次top命令的輸出結(jié)果。 -p:指定特定的pid進(jìn)程號(hào)進(jìn)行觀察。
在top命令顯示的頁面還可以輸入以下按鍵執(zhí)行相應(yīng)的功能(注意大小寫區(qū)分的):
?:顯示在top當(dāng)中可以輸入的命令 P:以CPU的使用資源排序顯示 M:以內(nèi)存的使用資源排序顯示 N:以pid排序顯示 T:由進(jìn)程使用的時(shí)間累計(jì)排序顯示 k:給某一個(gè)pid一個(gè)信號(hào)??梢杂脕須⑺肋M(jìn)程 r:給某個(gè)pid重新定制一個(gè)nice值(即優(yōu)先級(jí)) q:退出top(用ctrl+c也可以退出top)。
top各輸出參數(shù)含義
下面是使用top命令來進(jìn)行性能檢測(cè)的截圖:
圖一(ubuntu):
圖二(centos):
一、top前5行統(tǒng)計(jì)信息
第1行:top – 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30
第1行是任務(wù)隊(duì)列信息,其參數(shù)如下:
內(nèi)容 | 含義 |
---|---|
05:43:27 | 表示當(dāng)前時(shí)間 |
up 4:52 | 系統(tǒng)運(yùn)行時(shí)間 格式為時(shí):分 |
2 users | 當(dāng)前登錄用戶數(shù) |
load average: 0.58, 0.41, 0.30 | 系統(tǒng)負(fù)載,即任務(wù)隊(duì)列的平均長(zhǎng)度。 三個(gè)數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。 |
load average: 如果這個(gè)數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時(shí)候就表明系統(tǒng)在超負(fù)荷運(yùn)轉(zhuǎn)了。
第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
第2、3行為進(jìn)程和CPU的信息
當(dāng)有多個(gè)CPU時(shí),這些內(nèi)容可能會(huì)超過兩行,其參數(shù)如下:
內(nèi)容 | 含義 |
---|---|
159 total | 進(jìn)程總數(shù) |
1 running | 正在運(yùn)行的進(jìn)程數(shù) |
158 sleeping | 睡眠的進(jìn)程數(shù) |
0 stopped | 停止的進(jìn)程數(shù) |
0 zombie | 僵尸進(jìn)程數(shù) |
37.0 us | 用戶空間占用CPU百分比 |
3.7 sy | 內(nèi)核空間占用CPU百分比 |
0.0 ni | 用戶進(jìn)程空間內(nèi)改變過優(yōu)先級(jí)的進(jìn)程占用CPU百分比 |
59.3 id | 空閑CPU百分比 |
0.0 wa | 等待輸入輸出的CPU時(shí)間百分比 |
0.0 hi | 硬中斷(Hardware IRQ)占用CPU的百分比 |
0.0 si | 軟中斷(Software Interrupts)占用CPU的百分比 |
0.0 st |
第4行:KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers
第5行:KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem
第4、5行為內(nèi)存信息
其參數(shù)如下:
內(nèi)容 | 含義 |
---|---|
KiB Mem: 1530752 total | 物理內(nèi)存總量 |
1481968 used | 使用的物理內(nèi)存總量 |
48784 free | 空閑內(nèi)存總量 |
70988 buffers(buff/cache) | 用作內(nèi)核緩存的內(nèi)存量 |
KiB Swap: 3905532 total | 交換區(qū)總量 |
267544 used | 使用的交換區(qū)總量 |
3637988 free | 空閑交換區(qū)總量 |
617312 cached Mem | 緩沖的交換區(qū)總量。 |
3156100 avail Mem | 代表可用于進(jìn)程下一次分配的物理內(nèi)存數(shù)量 |
上述最后提到的緩沖的交換區(qū)總量,這里解釋一下,所謂緩沖的交換區(qū)總量,即內(nèi)存中的內(nèi)容被換出到交換區(qū),而后又被換入到內(nèi)存,但使用過的交換區(qū)尚未被覆蓋,該數(shù)值即為這些內(nèi)容已存在于內(nèi)存中的交換區(qū)的大小。相應(yīng)的內(nèi)存再次被換出時(shí)可不必再對(duì)交換區(qū)寫入。
計(jì)算可用內(nèi)存數(shù)有一個(gè)近似的公式:
第四行的free + 第四行的buffers + 第五行的cached
二、進(jìn)程信息
列名 | 含義 |
---|---|
PID | 進(jìn)程id |
PPID | 父進(jìn)程id |
RUSER | Real user name |
UID | 進(jìn)程所有者的用戶id |
USER | 進(jìn)程所有者的用戶名 |
GROUP | 進(jìn)程所有者的組名 |
TTY | 啟動(dòng)進(jìn)程的終端名。不是從終端啟動(dòng)的進(jìn)程則顯示為 ? |
PR | 優(yōu)先級(jí) |
NI | nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí) |
P | 最后使用的CPU,僅在多CPU環(huán)境下有意義 |
%CPU | 上次更新到現(xiàn)在的CPU時(shí)間占用百分比 |
TIME | 進(jìn)程使用的CPU時(shí)間總計(jì),單位秒 |
TIME+ | 進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒 |
%MEM | 進(jìn)程使用的物理內(nèi)存百分比 |
VIRT | 進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES |
SWAP | 進(jìn)程使用的虛擬內(nèi)存中,被換出的大小,單位kb |
RES | 進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA |
CODE | 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb |
DATA | 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb |
SHR | 共享內(nèi)存大小,單位kb |
nFLT | 頁面錯(cuò)誤次數(shù) |
nDRT | 最后一次寫入到現(xiàn)在,被修改過的頁面數(shù)。 |
S | 進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程 |
COMMAND | 命令名/命令行 |
WCHAN | 若該進(jìn)程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名 |
Flags | 任務(wù)標(biāo)志 |
其他
默認(rèn)進(jìn)入top時(shí),各進(jìn)程是按照CPU的占用量來排序的。
1、在top基本視圖中,按鍵盤數(shù)字“1”可以監(jiān)控每個(gè)邏輯CPU的狀況:
2、敲擊鍵盤‘b’(打開關(guān)閉加亮效果)top視圖變換如下:
PID為16283為當(dāng)前top視圖中唯一的運(yùn)行態(tài)進(jìn)程。也可以敲擊鍵盤‘y’來打開或者關(guān)閉運(yùn)行態(tài)進(jìn)程的加亮效果。
3、敲擊鍵盤‘x’(打開/關(guān)閉排序列的加亮效果),top視圖變換如下:
可以看到現(xiàn)在是按"%CPU"進(jìn)行排序的,可以按”shift+>”或者”shift+<”左右改變排序序列。
4、改變進(jìn)程顯示字段
在top基本視圖中,敲擊”f”進(jìn)入另一個(gè)視圖,在這里可以編輯基本視圖中的顯示字段:
用上下鍵選擇選項(xiàng),按下空格鍵可以決定是否在基本視圖中顯示這個(gè)選項(xiàng)。
top命令是一個(gè)非常強(qiáng)大的功能,但是它監(jiān)控的最小單位是進(jìn)程,如果想監(jiān)控更小單位時(shí),就需要用到ps或者netstate命令來滿足我們的要求。