sar查看各種io
sar可用於監控Linux系統效能,協助我們分析效能瓶頸。sar工具的使用方式為”sar [選項] intervar [count]”,其中interval為統計資訊採樣時間,count為採樣次數。
下文將說明如何使用sar擷取以下效能分析資料:
整體CPU使用統計
各個CPU使用統計
記憶體使用量情況統計
整體I/O情況
各個I/O裝置情況
網路統計
整體CPU使用統計(-u)
使用-u選項,sar輸出整體CPU的使用方式,不加選項時,預設使用的就是-u選項。以下命令顯示採樣時間為1s,採樣次數為2次,整體CPU的使用方式:
linux:/ # sar -u 1 2Linux 2.6.16.60-0.21-smp (linux) 06/08/1211:37:07 CPU %user %nice %system %iowait %steal %idle11:37:08 all 0.00 0.00 0.25 0.00 0.00 99.7511:37:09 all 0.00 0.00 0.25 0.00 0.00 99.75Average: 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 1Linux 2.6.16.60-0.21-smp (linux) 06/08/12 14:04:37 CPU %user %nice %system %iowait %steal %idle14:04:38 all 0.50 0.00 0.12 0.00 0.00 99.3814:04:38 0 0.00 0.00 0.00 0.00 0.00 100.0014:04:38 1 0.00 0.00 0.00 0.00 0.00 100.0014:04:38 2 0.00 0.00 0.00 0.00 0.00 100.0014: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 2Linux 2.6.16.60-0.21-smp (linux) 06/08/1214:22:50 kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad14:22:51 11727480 4564652 28.02 174460 3995108 8393920 0 0.00 014:22:52 11727480 4564652 28.02 174460 3995108 8393920 0 0.00 0Average: 11727480 4564652 28.02 174460 3995108 8393920 0 0.00 0
上面輸出的記憶體單位為”kb”,各項的名稱可自解析其含義。
整體I/O情況(-b)
使用-b選項,可以顯示磁碟I/O的使用方式:
linux:~ # sar -b 1 2Linux 2.6.16.60-0.21-smp (linux) 06/08/1214:50:33 tps rtps wtps bread/s bwrtn/s14:50:34 0.99 0.00 0.99 0.00 7.9214:50:35 4.00 0.00 4.00 0.00 136.00Average: 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 1Linux 2.6.16.60-0.21-smp (linux) 06/08/1215:43:34 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util15:43:35 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0015:43:35 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0015: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 1Linux 2.6.16.60-0.21-smp (linux) 06/08/1215:50:22 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s15:50:23 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.0015:50:23 eth0 23.76 1.98 1.59 0.26 0.00 0.00 0.0015:50:23 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.0015: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.outlinux:~ # sar -d 1 10 -f sar.out
相比將結果重新導向到一個檔案,使用-o選項,可以儲存更多的系統資源資訊。