sar(System Activity Reporter系統活動狀況報告)是目前 Linux 上最爲全面的系統性能分析工具之一,能夠從多方面對系統的活動進行報告,包括:文件的讀寫狀況、系統調用的使用狀況、磁盤I/O、CPU效率、內存使用情況、進程活動及IPC有關的活動等。html
一、命令與參數
-A:全部報告的總和,以下圖ios
-b:顯示I/O和傳遞速率的統計信息網絡
字段 | 釋義 | 備註 |
tps | 磁盤每秒鐘的IO總數,等於iostat中的tps | |
rtps | 每秒鐘從磁盤讀取的IO總數 | |
wtps | 每秒鐘從寫入到磁盤的IO總數 | |
bread/s | 每秒鐘從磁盤讀取的塊總數 | |
bwrtn/s | 每秒鐘此寫入到磁盤的塊總數 | |
-u:輸出cpu使用狀況和統計信息,默認就是-u參數工具
sar 5 5
字段 | 釋義 | 備註 |
%user | 用戶空間的CPU使用 | |
%nice | 改變過優先級的進程的CPU使用率 | |
%system | 內核空間的CPU使用率 | |
%iowait | CPU等待IO的百分比 | 重點關注:%iowait太高表示存在I/O瓶頸,即磁盤IO沒法知足業務需求 |
%steal | 虛擬機的虛擬機CPU使用的CPU | |
%idle | 空閒的CPU | 重點關注:若是%idle太低表示CPU使用率比較嚴重,須要結合內存使用等狀況判斷CPU是否瓶頸 |
sar -q #查看平均負載性能
字段 | 釋義 | 備註 |
runq-sz | 運行隊列的長度(等待運行的進程數,每核的CP不能超過3個) | |
plist-sz | 進程列表中的進程(processes)和線程數(threads)的數量 | |
ldavg-1 | 最後1分鐘的CPU平均負載,即將多核CPU過去一分鐘的負載相加再除以核心數得出的平均值,5分鐘和15分鐘以此類推 | |
ldavg-5 | 最後5分鐘的CPU平均負載 | |
ldavg-15 | 最後15分鐘的CPU平均負載 |
sar -n #統計網絡信息spa
sar -n DEV 1 1
字段 | 釋義 | 備註 |
IFACE | 本地網卡接口的名稱 | |
rxpck/s | 每秒鐘接受的數據包 | |
txpck/s | 每秒鐘發送的數據包 | |
rxkB/s | 每秒鐘接受的數據包大小,單位爲KB | |
txkB/s | 每秒鐘發送的數據包大小,單位爲KB | |
rxcmp/s | 每秒鐘接受的壓縮數據包 | |
txcmp/s | 每秒鐘發送的壓縮包 | |
rxmcst/s | 每秒鐘接收的多播數據包 |
二、經常使用命令彙總
- sar 5 5 // CPU和IOWAIT統計狀態 -----------經常使用
- sar -u 5 5 // CPU的使用狀況和IOWAIT信息(同默認監控)
- sar -w 5 5 // 每秒上下文交換的數目
- sar -q 5 5 // 隊列的長度(等待運行的進程數)和負載的狀態
- sar -n ALL 5 5 // 全部的網絡狀態信息
- sar -n DEV 5 5 // 網路設備的狀態信息
- sar -b 5 5 // IO傳送速率