假如 Linux 進(jìn)程管理有段位,這幾個(gè)命令能排進(jìn)第幾?
一、四大名捕
四大名捕,最初出現(xiàn)于溫瑞安創(chuàng)作的武俠小說(shuō),是朝廷中正義力量諸葛小花的四大徒弟,四人各懷絕技,分別是輕功暗器高手“無(wú)情”、內(nèi)功卓越的高手“鐵手”、腿功驚人的“追命”和劍法一流的“冷血”。
本文四大名捕由 Linux 命令所出演:
無(wú)情:ps 出演
鐵手:dstat 出演
追命:top 出演
冷血:htop 出演
二、進(jìn)程相關(guān)基礎(chǔ)知識(shí)
介紹四大名捕之前先介紹一下進(jìn)程相關(guān)的基礎(chǔ)知識(shí),話不多說(shuō),看圖。
三、輕功暗器高手“無(wú)情” [PS]
ps:用于顯示當(dāng)前進(jìn)程的狀態(tài)(非動(dòng)態(tài))
ps [options]:
選項(xiàng)有三種風(fēng)格:
UNIX風(fēng)格,必須在選項(xiàng)前面加“-”
BSD風(fēng)格,選項(xiàng)前不能加“-”
GNU風(fēng)格,選項(xiàng)前為兩個(gè)“-”
常用組合之一:aux
a:所有與終端相關(guān)的進(jìn)程 x:所有與終端無(wú)關(guān)的進(jìn)程
u:以用戶為中心組織進(jìn)程狀態(tài)信息顯示
CPU%:cpu時(shí)間占用比率 MEM%:內(nèi)存占用百分比 VSZ:virtual size虛擬內(nèi)存集; RSS:Resident Size,常駐內(nèi)存集; STAT:
R:running 運(yùn)行 S:interruptable sleeping 可中斷睡眠 D:uninterruptable sleeping 不可中斷睡眠 T:Stopped 停止 Z:zombie 僵死態(tài) +:前臺(tái)進(jìn)程 l:多線程進(jìn)程 N:低優(yōu)先級(jí)進(jìn)程 <:高優(yōu)先級(jí)進(jìn)程 s:session leader 進(jìn)程領(lǐng)導(dǎo)者
常用組合之二:-ef
-e:顯示所有進(jìn)程 -f:顯示完整格式的進(jìn)程信息
常用組合之三:-eFH
-F:顯示完整格式的進(jìn)程信息;
C:cpu utilization cpu占用百分比 PSR:運(yùn)行于哪顆CPU之上 -H:以層級(jí)結(jié)構(gòu)顯示進(jìn)程的相關(guān)信息
常用組合之四:-eo, axo
o field1, field2,…:自定義要顯示的字段列表,以逗號(hào)分隔
常用的 field:pid, ni, priority, psr, pcpu, stat, comm, tty, ppid, rtprio
pid:進(jìn)程的pid號(hào) ni:nice值 priority:優(yōu)先級(jí) psr:運(yùn)行在那顆cpu pcpu:cpu利用率 ppid:父進(jìn)程的id號(hào) rtprio:實(shí)時(shí)優(yōu)先級(jí)
四、內(nèi)功卓越的高手“鐵手”[dstat]
dstat:系統(tǒng)資源統(tǒng)計(jì)命令(動(dòng)態(tài))
dstat [-afv] [options..] [delay [count]]
-c, –cpu:顯示cpu相關(guān)信息;
-C #,#,…,total:顯示第一個(gè)cpu,第二個(gè)cpu或者總共的
-d, –disk:顯示磁盤(pán)的相關(guān)信息
-D sda,sdb,…,tobal:顯示指定硬盤(pán)設(shè)備,總空間
-g:顯示page相關(guān)的速率數(shù)據(jù);
-m:Memory的相關(guān)統(tǒng)計(jì)數(shù)據(jù)
-n:Interface的相關(guān)統(tǒng)計(jì)數(shù)據(jù);
-p:顯示process的相關(guān)統(tǒng)計(jì)數(shù)據(jù);
-r:顯示io請(qǐng)求的相關(guān)的統(tǒng)計(jì)數(shù)據(jù);
-s:顯示swapped的相關(guān)統(tǒng)計(jì)數(shù)據(jù);
--tcp:顯示tcp套接字 --udp:顯示udp連接 --raw:顯示裸套接字 --socket:套接字 --ipc:進(jìn)程間通信信息
--top-cpu:顯示最占用CPU的進(jìn)程;
--top-io:最占用io的進(jìn)程;
--top-mem:最占用內(nèi)存的進(jìn)程;
五、腿功驚人的“追命”[top]
top:列出inux進(jìn)程
top為動(dòng)態(tài)顯示進(jìn)程
top命令個(gè)參數(shù)具體含義:
top – 14:58:34 up5:28,1 user,load average: 0.01, 0.02, 0.05
14:58:34:當(dāng)前時(shí)間 up 5:28:運(yùn)行時(shí)長(zhǎng) 1 user:登錄當(dāng)前系統(tǒng)上的用戶數(shù) load average: 0.01, 0.02, 0.05:平均負(fù)載(等待運(yùn)行的隊(duì)列長(zhǎng)度的負(fù)載)
Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie
Tasks:任務(wù)
353 total:一共運(yùn)行多少進(jìn)程
2 running:幾個(gè)處于運(yùn)行
351 sleeping:多少個(gè)睡眠
0 stopped:多少個(gè)停止
0 zombie:多少個(gè)僵死
%Cpu(s):0.0 us,0.7 sy,0.0 ni, 99.3 id,0.0 wa,0.0 hi,0.0 si,0.0 st
%Cpu:cpu占用百分比 0.0 us:用戶空間占用的百分比 0.7 sy:內(nèi)核空間占用時(shí)間的百分比 0.0 ni:對(duì)nice調(diào)整占用的內(nèi)存百分比 99.3 id:空閑百分比 0.0 wa(wait):等待IO完成所消耗的百分比 0.0 hi:處理硬件中斷所占用的百分比 0.0 si:處理軟件中斷所占用的百分比 0.0 st:被偷走的百分比(虛擬化程序)
KiB Mem :1001332 total, 681052 free, 139844 used, 180436 buff/cache
KiB Mem:內(nèi)存空間占用,以KB為單位: 1001332 total:總內(nèi)存空間 681052 free:剩余內(nèi)存空間 139844 used:已用內(nèi)存空間 180436 buff/cache:用于緩存和緩沖的內(nèi)存空間
KiB Swap:2098172 total,2098172 free,0 used. 698100 avail Mem
KiB Swap:swap空間占用,以KB為單位 2098172 total:總空間 2098172 free:剩余空間 0 used:已用空間 698100 avail Mem :有效swap大小
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3077 root 20 0 146276 2256 1420 R 1.7 0.2 0:02.91 top
PID:用戶pid USER:用戶名稱 PR:優(yōu)先級(jí) NI:nice值 VIRT:virtual size虛擬內(nèi)存集 RES:常駐內(nèi)存集 SHR:共享內(nèi)存空間 S:當(dāng)前狀態(tài) %CPU:占據(jù)CPU百分比 %MEM:占據(jù)MEM百分比 TIME+:運(yùn)行時(shí)長(zhǎng) COMMAND:命令
top內(nèi)排序:
P:以占據(jù)CPU百分比排序 M:以占據(jù)內(nèi)存百分比排序 T:累積占用CPU時(shí)間排序
首部信息:
uptime信息:l命令
# 第一行沒(méi)有顯示
tasks及cpu信息:t命令
# 可以禁用顯示硬盤(pán)及cpu相關(guān)消息
內(nèi)存信息:m命令
# 可以將內(nèi)存使用率用|||顯示 或者白空格顯示
退出命令:q
修改刷新時(shí)間間隔:s
終止指定的進(jìn)程:k
選項(xiàng):
-d #:指定刷新時(shí)間間隔,默認(rèn)為3秒;
-b:以批次方式顯示;
-n #:顯示多少批次;
六、劍法一流“冷血”[htop]
htop:交互式進(jìn)程查看器
htop [-dus]
# htop 是一個(gè)非常強(qiáng)大的工具,下面從F1到F10可以看到具體的參數(shù)信息。
# F1 :幫助信息
選項(xiàng):
-d #:指定延遲時(shí)間間隔 -u UserName:僅顯示指定用戶的進(jìn)程 -s COLUME:以指定字段進(jìn)行排序
常用子命令:
l:顯示選定的進(jìn)程打開(kāi)的文件列表 s:跟蹤選定的進(jìn)程的系統(tǒng)調(diào)用 t:以層級(jí)關(guān)系顯示各進(jìn)程狀態(tài) a:將選定的進(jìn)程綁定至某指定的CPU核心
# 此處可以添加指定項(xiàng)到顯示屏幕上面,顯示方式可以是[Bar] [Text] [Graph] [LED]