1.top命令介紹
top命令是Linux系統(tǒng)中常用的性能分析工具,可以實時地查看系統(tǒng)的運行情況,比如內(nèi)存、CPU、負載以及各個進程的資源占用情況。鑒于工作中需要經(jīng)常使用,故在此整理一下top的學習筆記。
2.top命令輸出結果分析
首先來看一下執(zhí)行top后的輸出界面展示:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-aKDNOTeA-1656658143161)(file:///C:/Users/j30011431/AppData/Roaming/eSpace_Desktop/UserData/j30011431/imagefiles/EB155427-A769-4FF0-AE2F-AE8BB5CC4CBB.png)]
top界面主要分為兩個部分,前5行展示的是系統(tǒng)的整體性能,光標下面部分是系統(tǒng)中每個進程的具體信息。光標所在處是用來輸入操作命令的。
##2.1 系統(tǒng)的整體性能
第一行:
top - 14:39:05 up 36 days, 21:26, 3 users, load average: 56.31, 55.92, 56.03
- top:名稱
- 14:39:05:系統(tǒng)當前時間
- up 36 days, 21:26:系統(tǒng)以及運行的時間,和uptime命令相等
- 3 users:當前有3個用戶在線
- load average: 56.31, 55.92, 56.03:系統(tǒng)一定時間內(nèi)的平均負載,分別是1分鐘、5分鐘、15分鐘。
主要關注load average這個值,所謂系統(tǒng)負載就是:在一段時間內(nèi),CPU正在處理以及等待CPU處理的進程數(shù)之和。系統(tǒng)在同一時間運行的進程數(shù)和系統(tǒng)CPU核數(shù)相關,一般來說Load Average的數(shù)值別超過這臺機器的總核數(shù),就沒什么問題。
第二行:
Tasks: 265 total, 2 running, 263 sleeping, 0 stopped, 0 zombie
- Tasks:任務,也就是進程
- 265 total:當前總共有265個任務,也就是265個進程
- 2 running:2個進程正在運行
- 263 sleeping:263個進程正在休眠
- 0 stopped:0個停止的進程
- 0 zombie:1個僵尸進程
第三行:
%Cpu(s): 88.9 us, 7.9 sy, 0.0 ni, 1.7 id, 0.0 wa, 1.4 hi, 0.0 si, 0.0 st
- %Cpu(s):CPU使用率
- 88.9 us:用戶空間占用CPU時間的百分比(大部分進程都運行在用戶態(tài),通常都是希望用戶空間CPU越高越好)
- 7.9 sy:內(nèi)核空間占用CPU時間的百分比(Linux內(nèi)核態(tài)占用的CPU時間,系統(tǒng) CPU占用越高,表明系統(tǒng)某部分存在瓶頸。通常這個值越低越好)
- 0.0 ni:占用CPU時間的百分比(ni是nice的縮寫,進程用戶態(tài)的優(yōu)先級,如果調整過優(yōu)先級,那么展示的就是調整過nice值的進程消耗掉的CPU時間,如果系統(tǒng)中沒有進程被調整過nice值,那么ni就顯示為0)
- 1.7 id:空閑CPU占用率,等待進程運行
- 0.0 wa:等待輸入輸出的CPU時間百分比(CPU的處理速度是很快的,磁盤IO操作是非常慢的。wa表示 CPU 在等待 IO 操作完成所花費的時間。系統(tǒng)不應該花費大量的時間來等待 IO 操作,否則就說明 IO 存在瓶頸)
- 1.4 hi:CPU硬中斷時間百分比(硬中斷是硬盤、網(wǎng)卡等硬件設備發(fā)送給CPU的中斷消息 )
- 0.0 si:CPU軟中斷時間百分比(軟中斷是由程序發(fā)出的中斷 )
- 0.0 st:被強制等待(involuntary wait)虛擬 CPU 的時間,此時 Hypervisor 在為另一個虛擬處理器服務。
第四行:
MiB Mem : 15508.4 total, 3858.4 free, 3369.3 used, 828.07 buff/cache
- MiB Mem:內(nèi)存
- 15508.4 total:物理內(nèi)存總量
- 3858.4 free:空閑內(nèi)存量
- 3369.3 used:已使用的內(nèi)存量
- 828.07 buff/cache:用作內(nèi)核緩存的內(nèi)存量
第五行:
MiB Swap: 4096.0 total, 3855.1 free, 240.9 used. 10823.7 avail Mem
- MiB Swap:交換空間(虛擬內(nèi)存,當內(nèi)存不足的時候,把一部分硬盤空間虛擬城內(nèi)存使用)
- 4096.0 total:交換區(qū)總量
- 3855.1 free:空閑交換區(qū)總量
- 240.9 used:使用的交換區(qū)總量
- 10823.7 avail Mem:可用于啟動一個新應用的內(nèi)存(物理內(nèi)存),和free不同,它計算的是可回收的page cache和memory slab
第四行和第五行輸出信息,等同于使用free -m命令。
2.2 進程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID:進程id
- USER:進程所有者
- PR:進程的優(yōu)先級,越小優(yōu)先級越高
- NI:nice值,負值表示高優(yōu)先級,正值表示低優(yōu)先級
- VIRT:進程使用的虛擬內(nèi)存,單位是kb
- RES:進程使用的物理內(nèi)存,單位kb
- SHR:進程使用的共享內(nèi)存,單位kb
- S:進程狀態(tài)(S表示休眠,R表示正在運行, Z表示僵死狀態(tài),N表示該進程優(yōu)先值為負數(shù),I表示空閑狀態(tài))
- %CPU:進程占用的CPU使用率
- %MEM:進程使用的物理內(nèi)存和總內(nèi)存的百分比
- TIME+:進程使用的CPU時間總計,單位1/100秒
- COMMAND:命令行
上述列是top命令的默認顯示,還有一些參數(shù)可以使用top的交互命令選擇顯示,按f鍵,選擇需要展示的部分。
3.top命令行選項
格式:top [選項]
選項 | 功能 |
---|---|
-p | 只顯示某個進程的信息 |
-d | 設置刷新時間,默認是5s |
-c | 顯示產(chǎn)生進程的完整命令,默認是進程名 |
-o | 指定要排序的字段,比如top -o PID 按照PID從大到小,top -o -PID 按照PID從小到大 |
-n | 指定刷新次數(shù),比如 top -n 3,刷新輸出3次后退出 |
-b | 以非交互非全屏模式運行,以批次的方式執(zhí)行top,一般配合-n指定輸出幾次統(tǒng)計信息,將輸出重定向到指定文件,比如 top -b -n 3 > /tmp/top.tmp |
-i | 不顯示任何閑置 (idle) 或無用 (zombie) 的進程 |
-u | 查找特定用戶啟動的進程 |
4.top交互命令
top命令在執(zhí)行過程中可以使用一些交互功能:
按鍵 | 功能 |
---|---|
h鍵 | 按下h鍵,會顯示幫助畫面 |
c鍵 | 按下c鍵,會顯示產(chǎn)生進程的完整命令,等同于-c參數(shù),再次按下c鍵,變?yōu)槟J顯示 |
f鍵 | 按下f鍵,可以選擇需要展示的項目 |
M鍵 | 按下M鍵,根據(jù)駐留內(nèi)存大小(RES)排序 |
P鍵 | 按下P鍵,根據(jù)CPU使用百分比大小進行排序 |
T鍵 | 按下T鍵,根據(jù)時間/累計時間進行排序 |
E鍵 | 按下E鍵,切換頂部內(nèi)存顯示單位 |
e鍵 | 按下e鍵,切換進程內(nèi)存顯示單位 |
l鍵 | 按下l鍵,切換顯示平均負載和啟動時間信息。 |
t鍵 | 按下t鍵,切換顯示CPU狀態(tài)信息 |
m鍵 | 按下m鍵,切換顯示內(nèi)存信息 |
5. VIRT、RES、SHR含義
VIRT:
1、進程“需要的”虛擬內(nèi)存大小,包括進程使用的庫、代碼、數(shù)據(jù),以及malloc、new分配的堆空間和分配的??臻g等;
2、假如進程新申請10MB的內(nèi)存,但實際只使用了1MB,那么它會增長10MB,而不是實際的1MB使用量。
RES:
1、進程當前使用的內(nèi)存大小,包括使用中的malloc、new分配的堆空間和分配的??臻g,但不包括swap out量;
2、包含其他進程的共享;
3、如果申請10MB的內(nèi)存,實際使用1MB,它只增長1MB;
SHR:
1、進程當前使用的內(nèi)存大小,包括使用中的malloc、new分配的堆空間和分配的??臻g,但不包括swap out量;
2、包含其他進程的共享;
3、如果申請10MB的內(nèi)存,實際使用1MB,它只增長1MB;
上述三個值是從/proc/pid/statm文件中格式化讀出來的,前三個值分別是VIRT、RES、SHR,單位是頁,常見的是4kb。
參考文獻:
https://blog.csdn.net/langzi6/article/details/124805024文章來源:http://www.zghlxwxcb.cn/news/detail-822239.html
https://www.cnblogs.com/LittleHann/p/4522855.html文章來源地址http://www.zghlxwxcb.cn/news/detail-822239.html
到了這里,關于top命令詳細解讀的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!