在linux系統(tǒng)中,我們經(jīng)常使用到的一個命令就是top,它主要是用來顯示系統(tǒng)運行中所有的進(jìn)程和進(jìn)程對應(yīng)資源的使用等信息,所有的用戶都可以使用top命令。top命令內(nèi)容量豐富,可令使用者頭疼的是無法全部看懂它的含義,要么就是不用使用,要么就是不太掌握使用技巧。鑒于此,特地來講解一下top命令。
基礎(chǔ)篇——看懂top
這里我們列舉一個top案例,以此案例來教大家如何看懂top。
top - 11:11:59 up 2:19, 3 users, load average: 0.04, 0.06, 0.05
Tasks: 237 total, 1 running, 235 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.7 us, 0.2 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863252 total, 64576 free, 1399920 used, 398756 buff/cache
KiB Swap: 2097148 total, 1720572 free, 376576 used. 117632 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8816 root 20 0 3633756 249440 55012 S 0.7 13.4 2:01.40 gnome-shell
6363 root 20 0 320332 2072 1660 S 0.3 0.1 0:18.19 vmtoolsd
6924 dmdba 39 19 2561364 187944 16 S 0.3 10.1 0:20.15 dmserver
7107 root 20 0 501060 157332 118028 S 0.3 8.4 0:41.72 X
10105 dmdba 20 0 3297352 414348 6284 S 0.3 22.2 1:08.05 JAVA
1 root 20 0 191424 3392 1752 S 0.0 0.2 0:09.82 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.98 ksoftirqd/0
……
第一行:top
top - 11:11:59 up 2:19, 3 users, load average: 0.04, 0.06, 0.05
含義:
- 11:11:59——指系統(tǒng)的當(dāng)前時間
up 2:19——指當(dāng)前系統(tǒng)運行的時間2小時19分(未重啟,連續(xù)運行時間)
3 users——當(dāng)前系統(tǒng)有三個用戶登錄
load average: 0.04, 0.06, 0.05——指系統(tǒng)分別在1分鐘、5分鐘、15分鐘內(nèi)運行的負(fù)載情況。
——load average算法是每隔5秒檢查活躍進(jìn)程數(shù),按特定算法算出,如果結(jié)果除以邏輯CPU結(jié)果高于5表名系統(tǒng)超負(fù)荷運轉(zhuǎn)。
第二行:系統(tǒng)當(dāng)前進(jìn)程數(shù)情況
Tasks: 237 total, 1 running, 235 sleeping, 0 stopped, 1 zombie
含義:
237 total:進(jìn)程數(shù),共237個、1 running:1個運行中、235 sleeping:235個休眠進(jìn)程、0 stopped:0個停止?fàn)顟B(tài)進(jìn)程、1 zombie:1個僵尸進(jìn)程。
第三行:當(dāng)前CPU的運行情況
%Cpu(s): 0.7 us, 0.2 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
含義:
0.7 us:用戶空間占用CPU的百分比
0.2 sy:內(nèi)核空間占用CPU的百分比
0.0 ni:改變過優(yōu)先級的進(jìn)程占用CPU的百分比
99.2 id:空閑CPU百分比
0.0 wa: IO等待占用CPU的百分比
0.0 hi:硬中斷(Hardware IRQ)占用CPU的百分比
0.0 si: 軟中斷(Software Interrupts)占用CPU的百分比
0.0 st:系統(tǒng)百分之多少等待得到真正的cpu資源。在正常情況下最好為0,表明得到了所有必要的cpu資源。如果這個值為50,表明cpu時有一半時間在等待。
第四行:內(nèi)存狀態(tài) KiB Mem(單位k)
KiB Mem : 1863252 total, 64576 free, 1399920 used, 398756 buff/cache
含義:
1863252 total:物理內(nèi)存總量1863252kb
64576 free: 空閑內(nèi)存總量64576kb
1399920 used:使用中的內(nèi)存總量1399920kb
398756 buff/cache: 緩存的內(nèi)存量398756kb
第五行:swap交換分區(qū) KiB Swap(單位k)
KiB Swap: 2097148 total, 1720572 free, 376576 used. 117632 avail Mem
2097148 total:交換區(qū)總量
1720572 free:空閑交換區(qū)總量
376576 used:使用的交換區(qū)總量
117632 avail Mem :可用的交換區(qū)總量
第六行:空行
top內(nèi)部交互命令使用時,在此行顯示
第七行以下:各進(jìn)程(任務(wù))的狀態(tài)監(jiān)控
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6924 dmdba 39 19 2561364 187944 16 S 0.3 10.1 0:20.15 dmserver
含義:
PID — 進(jìn)程id
USER — 進(jìn)程所有者
PR — 進(jìn)程優(yōu)先級
NI — nice值。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級
VIRT — 進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
RES — 進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
SHR — 共享內(nèi)存大小,單位kb
S — 進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程
%CPU — 上次更新到現(xiàn)在的CPU時間占用百分比
%MEM — 進(jìn)程使用的物理內(nèi)存百分比
TIME+ — 進(jìn)程使用的CPU時間總計,單位1/100秒
COMMAND — 進(jìn)程名稱(命令名/命令行)
進(jìn)階一:top命令參數(shù)用法
對于top命令的完整語法是:top [選項],而在我們?nèi)粘J褂眠^程中都是忽略選項的,下面來看看top命令的選項都有哪些。我們可以使用top -h查看命令幫助信息。
host bin]# top -h
procps-ng version 3.3.10
Usage:
top -hv | -bcHIOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
top命令選項:
-b 以批處理模式操作
-c 顯示完整的治命令
-d 屏幕刷新間隔時間
-I 忽略失效過程
-s 保密模式
-S 累積模式
-i<時間> 設(shè)置刷新間隔時間
-u<用戶名> 指定用戶名
-p<進(jìn)程號> 指定進(jìn)程
-n<次數(shù)> 循環(huán)顯示的次數(shù)
注意:請忽略多余的選項,help中實際的選項較少,是因為本文在麒麟操作系統(tǒng)中進(jìn)行的演示。
案例:在top顯示中只查看dmdba用戶的進(jìn)程情況,并且要求每10秒進(jìn)行刷新。
命令:top - u dmdba -d 10
進(jìn)階二:top命令中的交互命令參數(shù)用法
進(jìn)入top命令后,提供了一些交互命令,可以幫助我們更好的對top結(jié)果進(jìn)行管理,涉及的交互命令如下:
h 顯示快捷鍵幫助
k 終止一個進(jìn)程
i 開/關(guān)忽略閑置和僵死進(jìn)程
q 退出程序
r 重新安排一個進(jìn)程的優(yōu)先級別
S 切換到累計模式
s 更改刷新間隔時間,單位秒
f,F 從當(dāng)前顯示中添加或者刪除項目
o,O 改變顯示項目的順序
l 切換顯示平均負(fù)載和啟動時間信息
m 切換顯示內(nèi)存信息
t 切換顯示進(jìn)程和CPU狀態(tài)信息
c 切換顯示命令名稱和完整命令行
M 根據(jù)內(nèi)存使用大小排序
P 根據(jù)CPU使用率進(jìn)行排序 (默認(rèn)排序)
T 根據(jù)時間/累計時間進(jìn)行排序
w 將當(dāng)前設(shè)置寫入~/.toprc文件中
1 展開多核cpu顯示
案例:進(jìn)入top后查看多核cpu的運行情況。
進(jìn)入top后,按下1鍵,此時看看到2個cpu都顯示了各自的cpu運行情況。
更多實用技能敬請期待,收藏+關(guān)注才不會迷路哦[憨笑]