iostat是一个基于/proc/diskstats文件计算的IO统计工具,它在周期性的去读取/proc/diskstats的IO统计信息并通过一定的公式计算出来。输出如下:
$iostatLinux 4.4.0-116-generic (jpc) 03/18/2018 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.94 0.08 3.02 2.08 0.00 88.89 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 12.15 243.01 110.93 5014986 2289276 sdb 17.88 83.01 89.09 1712994 1838461
$iostat Linux 4.4.0-116-generic (jpc) 03/18/2018 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.94 0.08 3.02 2.08 0.00 88.89 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 12.15 243.01 110.93 5014986 2289276 sdb 17.88 83.01 89.09 1712994 1838461
tps:transfer per second,每秒传输的IO数量
kB_read/s:每秒读取的KB数量
kB_wrtn/s:每秒写的KB数量
kB_read:累计读取的KB数
kB_wrtn:累计写的KB数量
$iostat -x Linux 4.4.0-116-generic (jpc) 03/18/2018 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.11 0.19 3.10 1.83 0.00 89.78 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.06 7.13 18.23 7.51 614.39 163.88 60.47 0.03 1.11 0.64 2.27 0.42 1.09 sdb 0.77 3.13 15.46 11.81 249.41 128.89 27.75 0.08 3.03 0.52 6.32 0.18 0.49
rrqm/s:每秒合并读IO的次数
wrqm/s:每秒合并写IO的次数
r/s:每秒读IO完成的次数
w/s:每秒写IO完成的次数
rkB/s:每秒读IO的KB数量
wkB/s:每秒写IO的KB数量
avgrq-sz:平均IO扇区数
avgqu-sz:平均未完成的IO数量,包括在队列中的和硬件正在处理的。
await:平均每个IO耗时,包括在队列中和硬件操作的时间。
r_wait:平均每个读IO耗时**w_wait**:平均每个写IO耗时
svctm:Warning! Do not trust this field any more. This field will be removed in a future sysstat version
%util:磁盘利用率,只要有IO操作就算,由于硬件的并发处理IO能力,即使%util达到100%也不意味着已达存储介质的性能极限,只能说明在这个统计周期内,该介质一直都有IO操作。