八個常用 Linux 性能監(jiān)測命令,你用過幾個?
在Linux系統(tǒng)中,性能監(jiān)測工具是很多的,我下面將常用的幾個命令行工具進行介紹。
1. top/htop
(1) top:
圖片
功能:實時監(jiān)控進程,顯示CPU、內(nèi)存、負載、交換區(qū)等信息。
常用快捷鍵:
快捷鍵 | 說明 |
M | 按內(nèi)存使用排序 |
P | 按CPU使用排序 |
k | 殺死進程,輸入進程ID |
q | 退出 |
(2) htop
功能:top的增強版本,提供更友好的界面和交互性。
特點:支持用箭頭鍵選擇進程,并可以直接殺死、查看進程樹。在顯示界面會有提示鍵
最小化安裝的系統(tǒng)需要自行安裝htop:
yum install -y htop
2. vmstat
功能:監(jiān)控系統(tǒng)的內(nèi)存、進程、CPU和I/O等。
輸出字段:
字段 | 說明 |
r | 運行隊列中等待CPU的進程數(shù)(Runnable) |
b | 處于等待狀態(tài)的進程數(shù)(Blocked) |
swpd | 已使用的虛擬內(nèi)存 |
free | 空閑內(nèi)存 |
buff | 用作緩沖區(qū)的內(nèi)存 |
cache | 用作頁面緩存的內(nèi)存 |
si | 從交換空間讀取的內(nèi)存 |
so | 寫入交換空間的內(nèi)存量 |
bi | 每秒鐘從塊設(shè)備(如磁盤)讀取的塊數(shù) |
bo | 每秒鐘寫入塊設(shè)備的塊數(shù) |
in | 每秒中斷的次數(shù) |
cs | 每秒上下文切換的次數(shù) |
us | 用戶空間占用的CPU時間百分比(User) |
sy | 內(nèi)核空間占用的CPU時間百分比(System) |
id | 空閑的CPU時間百分比(Idle) |
wa | 等待I/O的CPU時間百分比(Wait) |
st | 被虛擬機偷取的CPU時間百分比(Stolen) |
常用操作:每1秒更新一次,輸出5次
vmstat 1 5
3. iostat
功能:幫助用戶分析磁盤的讀寫性能,監(jiān)控設(shè)備I/O活動,以及了解系統(tǒng)的整體負載情況。
語法格式:
iostat [選項] [更新時間間隔 次數(shù)]
常用選項:
選項 | 說明 |
-c | 示 CPU 使用情況 |
-d | 顯示磁盤設(shè)備的統(tǒng)計信息 |
-x | 顯示擴展的磁盤統(tǒng)計信息 |
-p | 顯示每個分區(qū)的統(tǒng)計信息 |
-h | 使用更友好的單位 |
主要輸出字段:
輸出字段 | 說明 |
%user | 用戶進程消耗的CPU百分比 |
%system | 系統(tǒng)進程消耗的CPU百分比 |
%iowait | 等待 I/O 的 CPU 時間百分比 |
%idle | 空閑的 CPU 時間百分比(Idle) |
tps | 每秒鐘的 I/O 操作次數(shù) |
kB_read/s | 每秒讀取的 KB 數(shù) |
kB_wrtn/s | 每秒寫入的 KB 數(shù) |
kB_read | 從系統(tǒng)啟動以來讀取的總 KB 數(shù) |
kB_wrtn | 從系統(tǒng)啟動以來寫入的總 KB 數(shù) |
使用-x選項的擴展輸出::
輸出內(nèi)容 | 說明 |
r_await | 每次讀取操作的平均等待時間(ms) |
w_await | 每次寫入操作的平均等待時間(ms) |
await | 所有 I/O 操作(讀/寫)的平均等待時間(ms) |
svctm | 每次 I/O 操作的平均服務(wù)時間(ms) |
%util | 磁盤的利用率 |
常用操作:每 1 秒鐘更新一次,輸出 5 次統(tǒng)計信息。
iostat -x 1 5
4. netstat/ss
功能:查看網(wǎng)絡(luò)連接、監(jiān)聽端口、路由信息等信息。
netstat和ss命令功能基本一樣的。
常用選項:
選項 | 說明 |
-a | 顯示所有連接和監(jiān)聽端口 |
-t | 顯示 TCP 協(xié)議的連接 |
-u | 顯示 UDP 協(xié)議的連接 |
-l | 顯示正在監(jiān)聽的套接字 |
-p | 顯示哪個進程正在使用該連接 |
-n | 以數(shù)字格式顯示地址和端口號(默認情況下,會顯示主機名和服務(wù)名)。 |
-r | 顯示路由表 |
常用操作: 顯示正在監(jiān)聽的端口和使用這些端口的進程
netstat -lntup
ss -lnupt
ss命令也可以快速查看網(wǎng)絡(luò)連接,通常比netstat更高效。
5. sar
功能:幫助用戶監(jiān)控系統(tǒng)狀態(tài),并生成關(guān)于 CPU 使用率、內(nèi)存、I/O、網(wǎng)絡(luò)、文件系統(tǒng)等的詳細報告
sar屬于sysstat包,需要單獨安裝。sar 默認并不會持續(xù)收集數(shù)據(jù),還需要啟動sysstat。
yum install sysstat
systemctl enable --now sysstat
常用操作:
- 每秒報告一次CPU使用情況,報告三次。
sar -u 1 3
- 每秒報告一次內(nèi)存使用情況,報告三次。
sar -r 1 3
6. iptraf
iptraf 是一個基于終端的交互式網(wǎng)絡(luò)監(jiān)控工具,主要用于實時監(jiān)控和分析 Linux 系統(tǒng)的網(wǎng)絡(luò)流量。它提供了詳細的網(wǎng)絡(luò)接口統(tǒng)計信息、網(wǎng)絡(luò)連接狀態(tài)、數(shù)據(jù)包計數(shù)、傳輸速率等內(nèi)容,常用于網(wǎng)絡(luò)性能調(diào)優(yōu)和故障排查。iptraf 可以幫助系統(tǒng)管理員快速發(fā)現(xiàn)網(wǎng)絡(luò)瓶頸、連接問題和流量異常。
安裝:
yum install iptraf
使用:
iptraf-ng
里面涉及的一些輸出字段大部分應(yīng)該是比較熟悉的,就不展開講解了。
7. nmon
功能:圖形化監(jiān)控工具,支持多項性能指標(biāo)。
使用: 啟動nmon,按c查看CPU,按m查看內(nèi)存,按d查看磁盤。
按c查看CPU:
按m查看內(nèi)容:
按d查看磁盤:
8. strace
功能:跟蹤系統(tǒng)調(diào)用,幫助調(diào)試程序。
安裝:
yum install strace
使用strace -p監(jiān)控特定進程的系統(tǒng)調(diào)用,或使用strace ./your_program跟蹤程序的執(zhí)行。
先通過netstat或top命令找到對應(yīng)的PID,然后再追蹤: