linux top 命令可视化_Linux 使用 top 命令查看系统的运行情况
top命令顯示界面
top命令默認(rèn)在一個(gè)特定間隔(3秒)后刷新顯示。要手動(dòng)刷新,用戶可以輸入回車或者空格。
top - 18:32:45 up 230 days, 2:01, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st
Mem: 3974188k total, 2811108k used, 1163080k free, 144292k buffers
Swap: 2097148k total, 46184k used, 2050964k free, 595092k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4478 root 20 0 3760m 669m 7808 S 1.3 17.2 195:53.36 java
7488 root 20 0 4799m 1.0g 13m S 1.0 26.0 30:55.04 java
25690 root 20 0 3428m 95m 5104 S 0.7 2.5 2156:22 java
24582 bo.wang 20 0 15024 1304 1004 R 0.3 0.0 0:00.15 top
25741 root 20 0 3432m 109m 3404 S 0.3 2.8 2482:59 java
1 root 20 0 19232 220 84 S 0.0 0.0 0:01.07 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 1:06.49 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 6:10.11 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
6 root RT 0 0 0 0 S 0.0 0.0 0:49.52 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 1:14.84 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1
9 root 20 0 0 0 0 S 0.0 0.0 5:03.11 ksoftirqd/1
10 root RT 0 0 0 0 S 0.0 0.0 0:43.21 watchdog/1
11 root 20 0 0 0 0 S 0.0 0.0 25:15.13 events/0
12 root 20 0 0 0 0 S 0.0 0.0 27:57.65 events/1
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/0
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/1
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/0
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/1
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef
前五行顯示的是統(tǒng)計(jì)信息。
1、第一行是任務(wù)隊(duì)列信息
top - 18:32:45 up 230 days, 2:01, 1 user, load average: 0.00, 0.00, 0.00
同 uptime 命令的執(zhí)行結(jié)果一樣,uptime 命令執(zhí)行結(jié)果:
[bo.wang@l-zcgtest1 ~]$uptime18:45:02 up 230 days, 2:14, 1 user, load average: 0.00, 0.00, 0.00
(1)18:45:02 當(dāng)前時(shí)間
(2)up 230 days,? 2:14, 系統(tǒng)連續(xù)運(yùn)行時(shí)間
(3)1 user, 當(dāng)前登錄用戶數(shù)
(4)load average: 0.00, 0.00, 0.00 系統(tǒng)負(fù)載,即任務(wù)隊(duì)列的平均長(zhǎng)度。 三個(gè)數(shù)值分別為 1分鐘、5分鐘、15分鐘前到當(dāng)前時(shí)刻的平均值。
2、第二行為進(jìn)程信息統(tǒng)計(jì)數(shù)據(jù)
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
(1)total 進(jìn)程總數(shù)
(2)running 正在運(yùn)行的進(jìn)程數(shù)
(3)sleeping 睡眠的進(jìn)程數(shù)
(4)stopped 停止的進(jìn)程數(shù)
(5)zombie 僵尸進(jìn)程數(shù)
3、第三行CPU信息統(tǒng)計(jì)數(shù)據(jù)
Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st
(1)0.8%us 用戶空間占用CPU百分比
(2)0.5%sy 內(nèi)核(系統(tǒng))空間占用CPU百分比
(3)0.0%ni 用戶進(jìn)程空間內(nèi)改變過優(yōu)先級(jí)的進(jìn)程占用CPU百分比
(4)98.5%id 空閑CPU百分比
(5)0.0%wa 等待輸入輸出的CPU時(shí)間百分比
(6)0.0%hi 硬件CPU中斷占用百分比
(7)0.0%si 軟中斷占用百分比
(8)0.2%st 虛擬機(jī)占用百分比
4、第四行為內(nèi)存信息數(shù)據(jù)
Mem: 3974188k total, 2811108k used, 1163080k free, 144292k buffers
(1)total 物理內(nèi)存總量
(2)used 使用的物理內(nèi)存總量
(3)free 空閑內(nèi)存總量
(4)buffers 用作內(nèi)核緩存的內(nèi)存量
5、第五行為交換區(qū)信息數(shù)據(jù)
Swap: 2097148k total, 46184k used, 2050964k free, 595092k cached
(1)total 交換區(qū)總量
(2)used 使用的交換區(qū)總量
(3)free 空閑交換區(qū)總量
(4)cached 緩沖的交換區(qū)總量
空閑內(nèi)存 = 空閑內(nèi)存總量free + 內(nèi)核緩存的內(nèi)存量 buffers + 緩沖的交換區(qū)總量cached
6、第六行以下為統(tǒng)計(jì)信息區(qū)域
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
各列含義如下:
序號(hào) 列名 ? 含義
a PID 進(jìn)程id
b PPID 父進(jìn)程id
c RUSER Real user name
d UID 進(jìn)程所有者的用戶id
e USER 進(jìn)程所有者的用戶名
f GROUP 進(jìn)程所有者的組名
g TTY 啟動(dòng)進(jìn)程的終端名。不是從終端啟動(dòng)的進(jìn)程則顯示為 ?
h PR 優(yōu)先級(jí)
i NI nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)
j P 最后使用的CPU,僅在多CPU環(huán)境下有意義
k %CPU 上次更新到現(xiàn)在的CPU時(shí)間占用百分比
l TIME 進(jìn)程使用的CPU時(shí)間總計(jì),單位秒
m TIME+ 進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒
n %MEM 進(jìn)程使用的物理內(nèi)存百分比
o VIRT 虛擬內(nèi)存。進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
p SWAP 進(jìn)程使用的虛擬內(nèi)存中,被換出的大小,單位kb。
q RES 常駐內(nèi)存。進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
r CODE 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb
s DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb
t SHR 共享內(nèi)存。單位kb
u nFLT 頁(yè)面錯(cuò)誤次數(shù)
v nDRT 最后一次寫入到現(xiàn)在,被修改過的頁(yè)面數(shù)。
w S 進(jìn)程狀態(tài)(D=不可中斷的睡眠狀態(tài),R=運(yùn)行,S=睡眠,T=跟蹤/停止,Z=僵尸進(jìn)程)
x COMMAND 命令名/命令行
y WCHAN 若該進(jìn)程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名
z Flags 任務(wù)標(biāo)志,參考 sched.h
備注:默認(rèn)情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來(lái)更改顯示內(nèi)容
top命令使用方法
top工具有兩種使用方法:
命令行加選項(xiàng)。其語(yǔ)法格式:top [選項(xiàng)]
top工具的內(nèi)置命令或交互命令的使用
1、命令行加選項(xiàng)
(1)-d n 指定每?jī)纱纹聊恍畔⑺⑿轮g的時(shí)間間隔。n 為具體的秒數(shù)。
(2)-p pid 通過指定監(jiān)控進(jìn)程ID來(lái)僅僅監(jiān)控某個(gè)進(jìn)程的狀態(tài)。pid 為具體進(jìn)程ID。?如果是多個(gè)進(jìn)程,只要$ top -p pid1,pid2,pid3
(3)-q 該選項(xiàng)將使top沒有任何延遲的進(jìn)行刷新。如果調(diào)用程序有超級(jí)用戶權(quán)限,那么top將以盡可能高的優(yōu)先級(jí)運(yùn)行。
(4)-S 指定累計(jì)模式
(5)-s 使top命令在安全模式中運(yùn)行。這將去除交互命令所帶來(lái)的潛在危險(xiǎn)。
(6)-i 使top界面不顯示任何閑置或者僵死進(jìn)程。只顯示運(yùn)行中的線程。
(7)-c COMMAND 選項(xiàng)顯示整個(gè)命令行而不只是顯示命令名。
(8)-b top顯示的時(shí)候,將每一次顯示的結(jié)果都打印出來(lái),不會(huì)將上一次的結(jié)果給沖掉
(9)-u username 顯示某個(gè)用戶的進(jìn)程信息,username 為具體用戶名,比如 root。
(10)-H 顯示線程的信息,不顯示進(jìn)程信息。
2、交互式命令
(3)A: 根據(jù)單窗口切換成多窗口,可以看到四個(gè)不同的窗口,可以通過a或者w來(lái)切換多個(gè)窗口。 四個(gè)窗口的名字分別為:Def,Job,Mem,Usr。
(1)f : 進(jìn)入一個(gè)動(dòng)態(tài)配置top的界面中,按a-z即可顯示或隱藏指定的列,按 Esc 或 Enter 都可保存并退回到 top 信息。
(2)o: 進(jìn)入一個(gè)動(dòng)態(tài)配置top的界面中, 可以改變列的顯示順序,按小寫的 a-z 可以將相應(yīng)的列向右移動(dòng),而大寫的 A-Z 可以將相應(yīng)的列向左移動(dòng)。按 Esc 或 Enter 都可保存并退回到 top 信息。
(3)R: top界面第一列數(shù)據(jù)進(jìn)行倒序排列。
(4)k : 終止一個(gè)進(jìn)程。系統(tǒng)將提示用戶輸入需要終止的進(jìn)程PID,以及需要發(fā)送給該進(jìn)程什么樣的信號(hào)。一般的終止進(jìn)程可以使用15信號(hào);如果不能正常結(jié)束那就使用信號(hào)9強(qiáng)制結(jié)束該進(jìn)程。默認(rèn)值是信號(hào)15。在安全模式中此命令被屏蔽。
(5)i: 隱藏閑置和僵死進(jìn)程。這是一個(gè)開關(guān)式命令。
(6)q: 退出top程序,Ctrl + C 也可以退出。
(7)S: 切換到累計(jì)模式。
(8)s : 改變兩次刷新之間的延遲時(shí)間。系統(tǒng)將提示用戶輸入新的時(shí)間,單位為s。如果有小數(shù),就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認(rèn)值是5 s。需要注意的是如果設(shè)置太小的時(shí)間,很可能會(huì)引起不斷刷新,從而根本來(lái)不及看清顯示的情況,而且系統(tǒng)負(fù)載也會(huì)大大增加。
(9)r: 重新安排一個(gè)進(jìn)程的優(yōu)先級(jí)別。系統(tǒng)提示用戶輸入需要改變的進(jìn)程PID以及需要設(shè)置的進(jìn)程優(yōu)先級(jí)值。輸入一個(gè)正值將使優(yōu)先級(jí)降低,反之則可以使該進(jìn)程擁有更高的優(yōu)先權(quán)。默認(rèn)值是10。
(10)l:切換顯示平均負(fù)載和啟動(dòng)時(shí)間信息。即顯示隱藏第一行。
(11)m: 切換顯示內(nèi)存信息。即顯示隱藏內(nèi)存行。
(12)t : 切換顯示進(jìn)程和CPU狀態(tài)信息。即顯示隱藏CPU行。
(13)c: 切換顯示命令名稱和完整命令行。 顯示完整的命令。 這個(gè)功能很有用。
(14)M : 根據(jù)駐留內(nèi)存大小RES進(jìn)行從大到小排序。
(15)P: 根據(jù)CPU使用百分比大小%CPU進(jìn)行從高到底排序。
(16)T: 根據(jù)時(shí)間/累計(jì)時(shí)間TIME+進(jìn)行從多到少排序。
(17)W: 將當(dāng)前設(shè)置寫入~/.toprc文件中。這是寫top配置文件的推薦方法
(18)h或者? 顯示幫助畫面,給出一些簡(jiǎn)短的命令總結(jié)說(shuō)明,按 Esc 或 Enter 都可退回到 top 信息。
(19)1:在第三行顯示多核CPU信息。
top命令補(bǔ)充
(1)監(jiān)控Java線程數(shù)
ps -eLf | grep java | wc -l
java可以換成 COMMAND 中的程序名,來(lái)監(jiān)控指定程序的線程名。
(2)監(jiān)控網(wǎng)絡(luò)客戶連接數(shù)
netstat -n | grep tcp | grep 3306 | wc -l
3306 是MySQL的端口,可以換成需要監(jiān)控的其他接口。
(3)進(jìn)程中運(yùn)行的線程數(shù)量
ls /proc/PID/task | wc -l
PID 是你想查看的進(jìn)程號(hào)。一般top界面第一列就是PID。
(4)輸出進(jìn)程內(nèi)存的狀況,可以用來(lái)分析線程堆棧
pmap PID
PID 是你想查看的進(jìn)程號(hào)。一般top界面第一列就是PID。
(5)CPU占用最多的前10個(gè)進(jìn)程
ps auxw|head -1;ps auxw|sort -rn -k3|head -10
(6)內(nèi)存消耗最多的前10個(gè)進(jìn)程
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
(7)虛擬內(nèi)存使用最多的前10個(gè)進(jìn)程
ps auxw|head -1;ps auxw|sort -rn -k5|head -10
總結(jié)
以上是生活随笔為你收集整理的linux top 命令可视化_Linux 使用 top 命令查看系统的运行情况的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式之空对象模式
- 下一篇: Linux宏定义实现类成员函数,全面解析