⑴二、iostat
⑵# iostat -x //每隔秒统计一次,共显示次
⑶[rootstage-new sysstat-..]# iostat -x
⑷Linux ..-.ELsmp (stage-new.intrabill. // _x__ ( CPU
⑸avg-cpu: ?%nice %system %iowait %steal %idle
⑹. . . . . .
⑺Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm ?/p>
⑻sda . . . . . . . . . . . . .
⑼avg-cpu: ?%nice %system %iowait %steal %idle
⑽. . . . . .
⑾Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm ?/p>
⑿sda . . . . . . . . . . . . .
⒀avg-cpu: ?%nice %system %iowait %steal %idle
⒁. . . . . .
⒂rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge/s
⒃wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge/s
⒄r/s: 每秒完成的读 I/O 设备次数。即 delta(rio/s
⒅w/s: 每秒完成的写 I/O 设备次数。即 delta(wio/s
⒆rsec/s: 每秒读扇区数。即 delta(rsect/s
⒇wsec/s: 每秒写扇区数。即 delta(wsect/s
⒈rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为字节。(需要计算
⒉wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算
⒊avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区。delta(rsect+wsect/delta(rio+wio
⒋avgqu-sz: 平均I/O队列长度。即 delta(aveq/s/ (因为aveq的单位为毫秒。
⒌await: 平均每次设备I/O操作的等待时间 (毫秒。即 delta(ruse+wuse/delta(rio+wio
⒍svctm: 平均每次设备I/O操作的服务时间 (毫秒。即 delta(use/delta(rio+wio
⒎г 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use/s/ (因为use的单位为毫秒
⒏如果 ?接近 %,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
⒐idle小于% IO压力就较大了,一般读取速度有较多的wait。 同时可以结合vmstat 查看查看b参数(等待资源的进程数和wa参数(IO等待所占用的CPU时间的百分比,高过%时IO压力高
⒑另外还可以参考:
⒒svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了,svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。
⒓队列长度(avgqu-sz也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 问题。
⒔上面就是Linux使用sysstat命令的方法介绍了,当然,sysstatf中的命令不止这些,本文介绍的是sysstat比较常用的命令,也是需要掌握的命令。