Linux性能相关工具
-
進(jìn)程管理相關(guān)命令:
-
pstree : 樹(shù)狀顯示進(jìn)程
- 選項(xiàng):
-p : 顯示PID,可以指定查看某個(gè)用戶
- 選項(xiàng):
-
ps : 查看進(jìn)程狀態(tài)
-
三種選項(xiàng)風(fēng)格:
UNIX : 帶 -
BSD : 不帶 -
GUN : -- -
選項(xiàng):
a : 所有與終端有關(guān)的進(jìn)程
x : 所有與終端無(wú)關(guān)的進(jìn)程
u : 顯示進(jìn)程所有者信息
f : 顯示進(jìn)程樹(shù),相當(dāng)于--forest
k | --sort : 對(duì)某列屬性排序(默認(rèn)升序,屬性前加-表示降序)
o : 定制要顯示屬性信息:PID,CMD,%cpu,%mem
L : 顯示支持的屬性列表
-C : 指定要顯示的命令,多個(gè)命令用,分隔
-L : 顯示線程
-e : 顯示所有進(jìn)程,相當(dāng)于-A
-f : 顯示完整格式程序信息
-F : 顯示更完整格式的進(jìn)程信息
-H : 以進(jìn)程層級(jí)格式顯示進(jìn)程相關(guān)信息
-u userlist : 指定有效的用戶ID或名稱
-U userlist : 指定真正的用戶ID或名稱
-g gid或groupname : 指定有效的gid或組名稱
-G gid或groupname : 指定真正的gid或組名稱
-p pid : 顯示指pid的進(jìn)程
--ppid pid : 顯示屬于pid的子進(jìn)程 -
ps輸出的屬性:
- STAT : 進(jìn)程狀態(tài)
R :running
S : interruptable sleeping 可中斷休眠
D : uninterruptable sleeping 不可中斷的休眠
T : stopped 停止
Z : zombie 僵死
+ : 前臺(tái)進(jìn)程
l : 多線程進(jìn)程
L :內(nèi)存分頁(yè)并帶鎖
N :低優(yōu)先級(jí)進(jìn)程
< : 高優(yōu)先級(jí)進(jìn)程
s : session leader,會(huì)話(子進(jìn)程)發(fā)起者 - VSZ: Virtual memory SiZe,虛擬內(nèi)存集,線性內(nèi)存
- RSS: ReSident Size, 常駐內(nèi)存集
- ni:nice 值
- pri:priority 優(yōu)先級(jí)
- psr:processor CPU編號(hào)
- rtprio: 實(shí)時(shí)優(yōu)先級(jí)
- STAT : 進(jìn)程狀態(tài)
-
查找占用最多內(nèi)存和CPU的進(jìn)程:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head #查看內(nèi)存
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head #查看CPU - 使用watch實(shí)用程序執(zhí)行重復(fù)的輸出以實(shí)現(xiàn)對(duì)就程進(jìn)行實(shí)時(shí)的監(jiān)視:
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
-
-
pgrep : 搜索進(jìn)程
- 使用ps [option] | grep等方式實(shí)現(xiàn)也可
- pgrep使用擴(kuò)展正則表達(dá)式搜索
pgrep [option] pattern
-u uid : 生效者
-U uid : 真實(shí)發(fā)起者
-l : 顯示進(jìn)程名
-a : 顯示完整格式的進(jìn)程名
-t terminal : 與指定終端相關(guān)的進(jìn)程
-P pid : 顯示指定進(jìn)程的子進(jìn)程
-
top : 實(shí)時(shí)監(jiān)測(cè)
- 選項(xiàng):
-d : 指定刷新時(shí)間,默認(rèn)3秒
-b : 顯示全部進(jìn)程(不分頁(yè))
-n : 指定刷新次數(shù),達(dá)到次數(shù)后退出 -
top顯示的信息:
第一行: top - :當(dāng)前系統(tǒng)時(shí)間 up : 系統(tǒng)運(yùn)行時(shí)間 user : 在線用戶數(shù) load average : 系統(tǒng)平均負(fù)載
第二行: total : 總進(jìn)程數(shù) running : 運(yùn)行中進(jìn)程 sleeping : 休眠進(jìn)程數(shù) stopped : 停止進(jìn)程數(shù) zombie : 僵死進(jìn)程數(shù)
第三行: us : 用戶空間占用CPU百分比 sy : 系統(tǒng)空間占用CPU百分比 ni : 用戶進(jìn)程空間內(nèi)改變過(guò)優(yōu)先級(jí)的進(jìn)程占用CPU百分比 id : 空閑CPU百分比 wa : 等待IO的CPU百分比 hi : 硬中斷 si : 軟中斷 st : 虛擬機(jī)偷走的百分比
第四行: Men :內(nèi)存信息行
第五行: Swap :交換空間信息行
第六行: PID : 進(jìn)程號(hào) USER : 用戶 PR : 優(yōu)先級(jí) NI : NICE值 VIRT : 虛擬內(nèi)存集 RES : 常駐內(nèi)存 SHR : 共享內(nèi)存 S : 進(jìn)程狀態(tài) %CPU : 占用CPU百分比 %MEN : 占用內(nèi)存百分比 TIME+ : 運(yùn)行時(shí)間 COMMAND : 命令行 - top內(nèi)按鍵命令:
M : 按內(nèi)存占用百分比大小排序
P :按cpu占用百分比大小排序,默認(rèn)
T :按累計(jì)占有時(shí)長(zhǎng)進(jìn)行排序
l : 是否顯示負(fù)載信息
t :是否顯示cpu和進(jìn)程的統(tǒng)計(jì)信息
m :是否顯示內(nèi)存和交互分區(qū)的信息
q :退出
k :kill,殺掉進(jìn)程
s :改變top刷新頻率**
- 選項(xiàng):
-
kill : 向進(jìn)程發(fā)送控制信號(hào),以實(shí)現(xiàn)對(duì)進(jìn)程管理,每個(gè)信號(hào)對(duì)應(yīng)一個(gè)數(shù)字,信號(hào)名稱以SIG開(kāi)頭(可省略),不區(qū)分大小寫
- 顯示當(dāng)前系統(tǒng)可用信號(hào): kill -l ; trap -l
- 常用信號(hào): man 7 signal
1 | SIGHUP: 無(wú)須關(guān)閉進(jìn)程而讓其重讀配置文件
2 | SIGINT: 中止正在運(yùn)行的進(jìn)程;相當(dāng)于Ctrl+c
3 | SIGQUIT:相當(dāng)于ctrl+\
9 | SIGKILL: 強(qiáng)制殺死正在運(yùn)行的進(jìn)程
15 | SIGTERM:終止正在運(yùn)行的進(jìn)程(默認(rèn))
18 | SIGCONT:繼續(xù)運(yùn)行
19 | SIGSTOP:后臺(tái)休眠 -
指定信號(hào)的方法:
(1)信號(hào)的數(shù)字標(biāo)識(shí):1, 2, 9
(2)信號(hào)完整名稱:SIGHUP
(3)信號(hào)的簡(jiǎn)寫名稱:HUP - kill進(jìn)程用法:
- 按PID:
kill [-SIGNAL] pid …
kill –n SIGNAL pid
kill –s SIGNAL pid - 按名稱:
killall [-SIGNAL] comm… - 按模式:
pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正發(fā)起運(yùn)行命令者
-t terminal: 與指定終端相關(guān)的進(jìn)程
-l: 顯示進(jìn)程名(pgrep可用)
-a: 顯示完整格式的進(jìn)程名(pgrep可用)
-P pid: 顯示指定進(jìn)程的子進(jìn)程
- 按PID:
-
I/O監(jiān)控工具:
-
vmstat : 服務(wù)器I/O狀態(tài)
vmstat [options] [delay [count]] vmstat 1 10 #1秒刷新一次,刷新10次后退出- 選項(xiàng):
-s : 顯示內(nèi)存的統(tǒng)計(jì)數(shù)據(jù) - 顯示的信息:
procs:
r: 可運(yùn)行(運(yùn)行中或等待運(yùn)行)進(jìn)程的個(gè)數(shù)
b: 處于不可中斷睡眠態(tài)的進(jìn)程個(gè)數(shù)(被阻塞的隊(duì)列的長(zhǎng)度)
memory:
swpd: 交換內(nèi)存的使用總量
free:空閑物理內(nèi)存總量
buffer:用于buffer的內(nèi)存總量
cache:用于cache的內(nèi)存總量
swap:
si:從磁盤交換進(jìn)內(nèi)存的數(shù)據(jù)速率(kb/s)
so:從內(nèi)存交換至磁盤的數(shù)據(jù)速率(kb/s)
io:
bi:從塊設(shè)備讀入數(shù)據(jù)到內(nèi)存中的速率(kb/s)
bo: 保存數(shù)據(jù)至塊設(shè)備的速率
system:
in: interrupts 中斷速率,包括時(shí)鐘
cs: context switch 進(jìn)程切換速率
cpu:
us : 用戶CPU時(shí)間,
sy : 系統(tǒng)CPU時(shí)間,太高表示系統(tǒng)調(diào)用時(shí)間長(zhǎng),例如IO操作頻繁
id : 空閑的CPU時(shí)間
wt : 等待IO的時(shí)間
st : 虛擬機(jī)占用的CPU時(shí)間 - 選項(xiàng):
-
iotop : 類似top的監(jiān)視IO使用狀況的工具
-
選項(xiàng):
-o : 只顯示正在產(chǎn)生IO的進(jìn)程或線程,可以在iotop運(yùn)行中按o生效
-a : 顯示累計(jì)IO量
-k : 使用kB為單位
-P : 僅顯示進(jìn)程,默認(rèn)顯示進(jìn)程和線程
-n NUM : 設(shè)置監(jiān)測(cè)次數(shù),默認(rèn)無(wú)限次
-d SEC : 設(shè)置監(jiān)測(cè)間隔,默認(rèn)為1秒
-p PID : 指定監(jiān)測(cè)的進(jìn)程/線程
-u USER : 指定監(jiān)測(cè)某個(gè)用戶
-b : 非交互模式,用于記錄日志
-t : 加上時(shí)間戳,非交互模式
-q : 禁止顯示開(kāi)頭幾行,非交互模式
-q : 只在第一次監(jiān)測(cè)時(shí)顯示列名
-qq : 永遠(yuǎn)不顯示列名
-qqq : 永遠(yuǎn)不現(xiàn)實(shí)IO匯總 - iotop輸出的信息:
第一行 : Read和Weite的速率總計(jì)
第二行 : 實(shí)際的速率
第三行:
TID : 線程ID(按p切換為進(jìn)程ID)
PRIO : 優(yōu)先級(jí)
USER : 用戶
DISK READ : 磁盤讀速率
DISK WRITE : 磁盤寫速率
SWAPIN : swap交換百分比
IO> : IO等待的百分
COMMAND : 線程/進(jìn)程命令 -
-
iostat : 統(tǒng)計(jì)CPU和設(shè)備IOS信息
iostat 1 10 #1秒刷新一次,刷新10次后退出 -
pmap : 進(jìn)程對(duì)應(yīng)的內(nèi)存映射
- 用法:pmap [options] pid [...]
- 選項(xiàng):
-x: 顯示詳細(xì)格式的信息
例:pmap 1 #查看進(jìn)程PID為1的進(jìn)程內(nèi)存映射
-
dastat : 系統(tǒng)資源統(tǒng)計(jì),代替vmstat,iostat
- 用法:dstat [-afv] [options..] [delay [count]]
-
選項(xiàng):
-c:顯示CPU系統(tǒng)占用,用戶占用,空閑,等待,中斷,軟件中斷等信息
-C:當(dāng)有多個(gè)CPU時(shí)候,此參數(shù)可按需分別顯示cpu狀態(tài),例:-C 0,1 顯示cpu0和cpu1的信息
-d:顯示磁盤讀寫數(shù)據(jù)大小
-n:顯示網(wǎng)絡(luò)狀態(tài)
-N eth1:指定要顯示的網(wǎng)卡,有多塊網(wǎng)卡時(shí)以,分隔
-l:顯示系統(tǒng)負(fù)載情況
-m:顯示內(nèi)存使用情況
-g:顯示頁(yè)面使用情況
-p:顯示進(jìn)程狀態(tài)
-s:顯示交換分區(qū)使用情況。
-r:I/O請(qǐng)求情況
-y:系統(tǒng)狀態(tài)
--ipc:顯示ipc消息隊(duì)列,信號(hào)等信息
--socket:用來(lái)顯示tcp udp端口狀態(tài)
-a:此為默認(rèn)選項(xiàng),等同于-cdngy
-v:等同于 -pmgdsc -D total
--output file : 把狀態(tài)信息以csv的格式重定向到指定的文件中,例:dstat --output
--top-cpu:顯示最占用CPU的進(jìn)程
--top-io: 顯示最占用io的進(jìn)程
--top-mem: 顯示最占用內(nèi)存的進(jìn)程
--top-latency: 顯示延遲最大的進(jìn)程
-
EPEL源上的監(jiān)控工具:
-
htop : 升級(jí)版的top
-
glances : 監(jiān)控系統(tǒng)資源利用情況
- glances 會(huì)用一下幾種顏色來(lái)代表狀態(tài):
綠色:OK(一切正常)
藍(lán)色:CAREFUL(需要注意)
紫色:WARNING(警告)
紅色:CRITICAL(嚴(yán)重) -
選項(xiàng):
-b: 以Byte為單位顯示網(wǎng)卡數(shù)據(jù)速率
-d: 關(guān)閉磁盤I/O模塊
-m: 禁用mount模塊
-n: 禁用網(wǎng)絡(luò)模塊
-1:每個(gè)CPU的相關(guān)數(shù)據(jù)單獨(dú)顯示
-t #: 延遲時(shí)間間隔
-o {HTML|CSV}:輸出格式
-f /path/to/somefile: 設(shè)定輸入文件位置 -
glances內(nèi)按鍵命令:
a : 對(duì)進(jìn)程自動(dòng)排序
c : 按 CPU 百分比對(duì)進(jìn)程排序
m : 按內(nèi)存百分比對(duì)進(jìn)程排序
p : 按進(jìn)程名字母順序?qū)M(jìn)程排序
i : 按讀寫頻率(I/O)對(duì)進(jìn)程排序
d : 顯示/隱藏磁盤 I/O 統(tǒng)計(jì)信息
f : 顯示/隱藏文件系統(tǒng)統(tǒng)計(jì)信息
n : 顯示/隱藏網(wǎng)絡(luò)接口統(tǒng)計(jì)信息
s : 顯示/隱藏傳感器統(tǒng)計(jì)信息
y : 顯示/隱藏硬盤溫度統(tǒng)計(jì)信息
l : 顯示/隱藏日志(log)
b : 切換網(wǎng)絡(luò) I/O 單位(Bytes/bits)
w : 刪除警告日志
x : 刪除警告和嚴(yán)重日志
1 : 切換全局 CPU 使用情況和每個(gè) CPU 的使用情況
h : 顯示/隱藏這個(gè)幫助畫面
t : 以組合形式瀏覽網(wǎng)絡(luò) I/O
u : 以累計(jì)形式瀏覽網(wǎng)絡(luò) I/O
q : 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以) - glances監(jiān)測(cè)遠(yuǎn)程系統(tǒng):
- 服務(wù)器模式:
glances -s -B IPADDR
IPADDR : 指明監(jiān)聽(tīng)本機(jī)哪個(gè)地址(默認(rèn)為所有地址) - 客戶端模式:
glances -c IPADDR
IPADDR : 要監(jiān)測(cè)的遠(yuǎn)程服務(wù)端地址
- glances 會(huì)用一下幾種顏色來(lái)代表狀態(tài):
轉(zhuǎn)載于:https://blog.51cto.com/bigboss/2051339
總結(jié)
以上是生活随笔為你收集整理的Linux性能相关工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信、陌陌等著名IM软件设计架构详解【转
- 下一篇: mac connect to host