iostat  -k 3 5  (以KB为单位,每3秒统计一次,共统计5次)

• avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
    %user    用户空间占用CPU百分比
    %nice 用户进程空间内改变过优先级的进程占用CPU百分比
    %system  内核空间占用CPU百分比
    %iowait  IO等待占用百分比
    %steal  虚拟机占用百分比
    %idle 空闲百分比

• Device: 各磁盘设备的IO统计信息
• tps:每秒IO次数
• kB_read/s:每秒从设备(drive expressed)读取的数据量
• kB_wrtn/s:每秒向设备(drive expressed)写入的数据量
• kB_read:读取的总数据量
• kB_wrtn:写入的总数据量


iostat  -x  详细信息.

rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s
wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s
r/s:每秒完成的读I/O设备次数。即delta(rio)/s
w/s:每秒完成的写I/0设备次数。即delta(wio)/s
rsec/s:每秒读扇区数。即delta(rsect)/s
wsec/s:每秒写扇区数。即delta(wsect)/s
rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节
wKB/s:每秒写K字节数。是wsec/s的一半
avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒)
await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio)
svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio)  !!!svctm越接近于await则说明等待时间少
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。80%表示设备已经很忙了,即delta(usr)/s/1000(因为use的单位为毫秒)


重点指标:r/s,w/s,avgqu-sz,await,svctm,%util

性能判断依据:

1、%util很大 超过80%
2、await远大于svctm
3、avgqu-sz 队列很长
4、r/s,w/s,IO读写次数频繁
5、IO等待时间占用百分比大 %iowait
    iowait% <20%      良好
    iowait% <35%      一般
    iowait% >50%
6、svctm一般要小于await(因为同时等待的请求的等待时间被重复计算了),svctm的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致svctm的增加。
7、await的大小一般取决于服务时间(svctm)以及I/O队列的长度和I/O请求的发出模式。如果svctm比较接近await,说明I/O几乎没有等待时间;
8、如果await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核elevator算法,优化应用,或者升级CPU