使用sar進行性能分析


sar可用於監控Linux系統性能,幫助我們分析性能瓶頸。sar工具的使用方式為”sar [選項] intervar [count]”,其中interval為統計信息采樣時間,count為采樣次數。

 

下文將說明如何使用sar獲取以下性能分析數據:

  1. 整體CPU使用統計
  2. 各個CPU使用統計
  3. 內存使用情況統計
  4. 整體I/O情況
  5. 各個I/O設備情況
  6. 網絡統計

 

整體CPU使用統計(-u)

使用-u選項,sar輸出整體CPU的使用情況,不加選項時,默認使用的就是-u選項。以下命令顯示采樣時間為1s,采樣次數為2次,整體CPU的使用情況:

linux:/ # sar -u 1 2
Linux 2.6.16.60-0.21-smp (linux)     06/08/12

11:37:07        CPU     %user     %nice   %system   %iowait    %steal     %idle
11:37:08        all      0.00      0.00      0.25      0.00      0.00     99.75
11:37:09        all      0.00      0.00      0.25      0.00      0.00     99.75
Average:        all      0.00      0.00      0.25      0.00      0.00     99.75

以上主要的統計項的解析如下:

%user: 用戶態下CPU使用時間比率

%system: 內核態下CPU使用時間比率

%iowait: CPU等待I/O占用時間比率

%idle: CPU空閑時間比率

 

各個CPU使用統計(-P)

“-P ALL”選項指示對每個內核輸出統計信息:

linux:~ # sar -P ALL 1 1
Linux 2.6.16.60-0.21-smp (linux)     06/08/12
 
14:04:37        CPU     %user     %nice   %system   %iowait    %steal     %idle
14:04:38        all      0.50      0.00      0.12      0.00      0.00     99.38
14:04:38          0      0.00      0.00      0.00      0.00      0.00    100.00
14:04:38          1      0.00      0.00      0.00      0.00      0.00    100.00
14:04:38          2      0.00      0.00      0.00      0.00      0.00    100.00
14:04:38          3      0.00      0.00      1.00      0.00      0.00     99.00

其中”CPU”列輸出0,1,2,3指示對應的cpu核。也可針對單獨一個內核顯示,“-P 1”指示顯示第二個內核的統計信息。

 

內存使用情況統計(-r)

使用-r選項可顯示內存統計信息,以下命令顯示以1秒為采樣時間,顯示2次內存信息:

linux:~ # sar -r 1 2
Linux 2.6.16.60-0.21-smp (linux)     06/08/12

14:22:50    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
14:22:51     11727480   4564652     28.02    174460   3995108   8393920         0      0.00         0
14:22:52     11727480   4564652     28.02    174460   3995108   8393920         0      0.00         0
Average:     11727480   4564652     28.02    174460   3995108   8393920         0      0.00         0

上面輸出的內存單位為”kb”,各項的名稱可自解析其含義。

 

整體I/O情況(-b)

使用-b選項,可以顯示磁盤I/O的使用情況:

linux:~ # sar -b 1 2
Linux 2.6.16.60-0.21-smp (linux)     06/08/12

14:50:33          tps      rtps      wtps   bread/s   bwrtn/s
14:50:34         0.99      0.00      0.99      0.00      7.92
14:50:35         4.00      0.00      4.00      0.00    136.00
Average:         2.49      0.00      2.49      0.00     71.64

以上各列的含義為:

tps: 每秒向磁盤設備請求數據的次數,包括讀、寫請求,為rtps與wtps的和。出於效率考慮,每一次IO下發后並不是立即處理請求,而是將請求合並(merge),這里tps指請求合並后的請求計數。

rtps: 每秒向磁盤設備的讀請求次數

wtps: 每秒向磁盤設備的寫請求次數

bread: 每秒從磁盤讀的bytes數量

bwrtn: 每秒向磁盤寫的bytes數量

 

各個I/O設備情況(-d)

使用-d選項可以顯示各個磁盤的統計信息,再增加-p選項可以以sdX的形式顯示設備名稱:

linux:~ # sar -d -p 1 1
Linux 2.6.16.60-0.21-smp (linux)     06/08/12

15:43:34          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15:43:35          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:43:35          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:43:35          sdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

以上輸出中DEV列以sdX的方式顯示了設備名稱。

 

網絡統計(-n)

使用-n選項可以對網絡使用情況進行顯示,-n后接關鍵詞”DEV”可顯示eth0、eth1等網卡的信息:

linux:~ # sar -n DEV 1 1
Linux 2.6.16.60-0.21-smp (linux)     06/08/12

15:50:22        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15:50:23           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:50:23         eth0     23.76      1.98      1.59      0.26      0.00      0.00      0.00
15:50:23         eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15:50:23         eth2      7.92      0.00      0.60      0.00      0.00      0.00      0.00

以上主要輸出含義如下:

IFACE: 網絡接口名稱

rxpck/s: 每秒收包的數量

txpck/s: 每秒發包的數量

rxkB/s: 每秒收的數據量(kB為單位)

txkB/s: 每秒發的數據量(kB為單位)

 

sar日志保存(-o)

最后講一下如何保存sar日志,使用-o選項,我們可以把sar統計信息保存到一個指定的文件,對於保存的日志,我們可以使用-f選項讀取:

linux:~ # sar -n DEV 1 10 -o sar.out
linux:~ # sar -d 1 10 -f sar.out

相比將結果重定向到一個文件,使用-o選項,可以保存更多的系統資源信息。

 

Reference: 10 Useful Sar(Sysstat) Examples for UNIX/Linux Performance Monitoring

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM