在Linux中常用于判斷問題所在的初步定位或性能瓶頸,iostat則給我們提供了豐富的IO狀態(tài)信息,其他工具還有iotop。
letong@me:~$ sudo iostat
Linux 3.13.0-41-generic (me) 2014年12月18日 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
8.92 0.12 2.27 0.65 0.00 88.05
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 5.12 85.24 1.97 586069 13512
sdb 9.51 43.74 112.81 300771 775678
rrqm/s: 每秒進(jìn)行 merge 的讀操作數(shù)目。即 delta(rmerge)/s
wrqm/s: 每秒進(jìn)行 merge 的寫操作數(shù)目。即 delta(wmerge)/s
r/s: 每秒完成的讀 I/O 設(shè)備次數(shù)。即 delta(rio)/s
w/s: 每秒完成的寫 I/O 設(shè)備次數(shù)。即 delta(wio)/s
rsec/s: 每秒讀扇區(qū)數(shù)。即 delta(rsect)/s
wsec/s: 每秒寫扇區(qū)數(shù)。即 delta(wsect)/s
rkB/s: 每秒讀K字節(jié)數(shù)。是 rsect/s 的一半,因?yàn)槊可葏^(qū)大小為512字節(jié)。(需要計算)
wkB/s: 每秒寫K字節(jié)數(shù)。是 wsect/s 的一半。(需要計算)
avgrq-sz: 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O隊(duì)列長度。即 delta(aveq)/s/1000 (因?yàn)閍veq的單位為毫秒)。
await: 平均每次設(shè)備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次設(shè)備I/O操作的服務(wù)時間 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊(duì)列是非空的。即 delta(use)/s/1000 (因?yàn)閡se的單位為毫秒)
常用參數(shù):
-d 1 #每1秒顯示1次
-x #顯示更詳細(xì)信息
-c #顯示cpu相關(guān)
常見用法
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看設(shè)備使用率、響應(yīng)時間
iostat -c 1 10 #查看cpu狀態(tài)