Linux 進(jìn)程管理之四大名捕
在下方公眾號(hào)后臺(tái)回復(fù):面試手冊(cè),可獲取杰哥匯總的 3 份面試 PDF 手冊(cè)。
一、四大名捕
四大名捕,最初出現(xiàn)于溫瑞安創(chuàng)作的武俠小說,是朝廷中正義力量諸葛小花的四大徒弟,四人各懷絕技,分別是輕功暗器高手“無情”、內(nèi)功卓越的高手“鐵手”、腿功驚人的“追命”和劍法一流的“冷血”。
本文四大名捕由 linux 命令所出演:
無情:ps ? ? 出演
鐵手:dstat ?出演
追命:top ? ?出演
冷血:htop ? 出演
二、進(jìn)程相關(guān)基礎(chǔ)知識(shí)
介紹四大名捕之前先介紹一下進(jìn)程相關(guān)的基礎(chǔ)知識(shí),話不多說,看圖。

三、輕功暗器高手“無情” [PS]
ps:用于顯示當(dāng)前進(jìn)程的狀態(tài)(非動(dòng)態(tài))
ps [options]:
選項(xiàng)有三種風(fēng)格:
1、UNIX風(fēng)格,必須在選項(xiàng)前面加“-”
2、BSD風(fēng)格,選項(xiàng)前不能加“-”
3、GNU風(fēng)格,選項(xiàng)前為兩個(gè)“-”
常用組合之一:aux
a:所有與終端相關(guān)的進(jìn)程
x:所有與終端無關(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]]

常用選項(xiàng):
-c, –cpu:顯示cpu相關(guān)信息;
-C #,#,…,total:顯示第一個(gè)cpu,第二個(gè)cpu或者總共的
-d, –disk:顯示磁盤的相關(guān)信息
-D sda,sdb,…,tobal:顯示指定硬盤設(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 up ?5: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命令
第一行沒有顯示

tasks及cpu信息:t命令
可以禁用顯示硬盤及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)程打開的文件列表
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]

來源:
https://www.cnblogs.com/sanyuanempire/p/6168534.html
推薦閱讀
利用 Python 實(shí)現(xiàn)多任務(wù)進(jìn)程
最簡(jiǎn)明的 Systemd 進(jìn)程管理教程
進(jìn)程、線程、進(jìn)程池、進(jìn)程三態(tài)、同步、異步、并發(fā)、并行、串行
Systemd 進(jìn)程管理工具實(shí)戰(zhàn)教程
線程、進(jìn)程、多線程、多進(jìn)程和多任務(wù)有啥關(guān)系?
詳解 Linux 環(huán)境下進(jìn)程管理工具 Supervisor
神奇,原來 Linux 終端下居然還有進(jìn)程記帳功能...
Linux環(huán)境下進(jìn)程和計(jì)劃任務(wù)管理

