iostat用於輸出CPU和磁盤I/O相關的統計信息
iostat語法
用法:iostat [ 選項 ] [ <時間間隔> [ <次數> ]]
常用選項說明:
-c:只顯示系統CPU統計信息,即單獨輸出avg-cpu結果,不包括device結果 -d:單獨輸出Device結果,不包括cpu結果 -k/-m:輸出結果以kB/mB為單位,而不是以扇區數為單位 -x:輸出更詳細的io設備統計信息 interval/count:每次輸出間隔時間,count表示輸出次數,不帶count表示循環輸出
說明:更多選項使用使用man iostat查看
常用實例
1、iostat,結果為從系統開機到當前執行時刻的統計信息
$ iostat Linux 3.10.0-514.26.2.el7.x86_64 (VM_17_110_centos) 2017年10月22日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.49 0.00 0.65 0.29 0.00 97.58 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn vda 3.27 6.38 48.27 7044109 53255704 vdb 0.00 0.00 0.00 944 0 vdc 12.22 145.74 120.85 160792201 133326268
輸出含義:
avg-cpu: 總體cpu使用情況統計信息,對於多核cpu,這里為所有cpu的平均值。重點關注iowait值,表示CPU用於等待io請求的完成時間。
Device: 各磁盤設備的IO統計信息。各列含義如下:
Device: 以sdX形式顯示的設備名稱 tps: 每秒進程下發的IO讀、寫請求數量 Blk_read/s: 每秒讀扇區數量(一扇區為512bytes) Blk_wrtn/s: 每秒寫扇區數量 Blk_read: 取樣時間間隔內讀扇區總數量 Blk_wrtn: 取樣時間間隔內寫扇區總數量
2、iostat -x -k -d 1 2。每隔1S輸出磁盤IO的詳細詳細,總共采樣2次。
$ iostat -x -k 1 2 Linux 3.10.0-514.26.2.el7.x86_64 (VM_17_110_centos) 2017年10月22日 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.49 0.00 0.65 0.29 0.00 97.58 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 6.85 0.67 2.60 6.38 48.27 33.39 0.02 5.72 5.46 5.78 0.27 0.09 vdb 0.00 0.00 0.00 0.00 0.00 0.00 14.75 0.00 1.55 1.55 0.00 1.55 0.00 vdc 0.06 14.87 6.91 5.31 145.72 120.84 43.62 0.11 9.04 9.92 7.89 0.89 1.09 avg-cpu: %user %nice %system %iowait %steal %idle 0.50 0.00 0.25 0.00 0.00 99.25 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 14.00 0.00 7.00 0.00 84.00 24.00 0.03 3.57 0.00 3.57 0.71 0.50 vdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 vdc 0.00 2.00 0.00 27.00 0.00 124.00 9.19 0.32 11.67 0.00 11.67 0.48 1.30
以上各列的含義如下:
rrqm/s: 每秒對該設備的讀請求被合並次數,文件系統會對讀取同塊(block)的請求進行合並 wrqm/s: 每秒對該設備的寫請求被合並次數 r/s: 每秒完成的讀次數 w/s: 每秒完成的寫次數 rkB/s: 每秒讀數據量(kB為單位) wkB/s: 每秒寫數據量(kB為單位) avgrq-sz:平均每次IO操作的數據量(扇區數為單位) avgqu-sz: 平均等待處理的IO請求隊列長度 await: 平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位) svctm: 平均每次IO請求的處理時間(毫秒為單位) %util: 采用周期內用於IO操作的時間比率,即IO隊列非空的時間比率
重點關注參數
1、iowait% 表示CPU等待IO時間占整個CPU周期的百分比,如果iowait值超過50%,或者明顯大於%system、%user以及%idle,表示IO可能存在問題。
2、avgqu-sz 表示磁盤IO隊列長度,即IO等待個數。
3、await 表示每次IO請求等待時間,包括等待時間和處理時間
4、svctm 表示每次IO請求處理的時間
5、%util 表示磁盤忙碌情況,一般該值超過80%表示該磁盤可能處於繁忙狀態。