sar可用於監控Linux系統性能,幫助咱們分析性能瓶頸。sar工具的使用方式爲」sar [選項] intervar [count]」,其中interval爲統計信息採樣時間,count爲採樣次數。html
下文將說明如何使用sar獲取如下性能分析數據:linux
總體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使用時間比率spa
%system: 內核態下CPU使用時間比率日誌
%iowait: CPU等待I/O佔用時間比率code
%idle: CPU空閒時間比率htm
各個CPU使用統計(-P)blog
「-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選項,能夠保存更多的系統資源信息。