|
以下是iostat -x 的输出,
Device: rrqm/s wrqm/s [color="Red"]r/s w/s [color="red"]rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sd-15 0.00 0.00 421.50 1.00 52952.00 8.00 125.35 1.83 4.33 1.97 83.05
sd-16 0.00 0.00 420.50 0.00 54492.00 0.00 129.59 1.73 4.11 1.96 82.30
sd-17 0.00 0.00 437.00 1.00 52288.00 8.00 119.40 2.14 4.86 2.00 87.65
sd-18 0.00 0.00 414.50 2.00 53236.00 16.00 127.86 1.97 4.75 2.03 84.60
系统是redhat 5.2,跑数据库,DB2, 以上数据是应用响应慢的时候抓的,每个设备有400多个读I/O,每个I/O的大概是60K左右,也就是26M的吞吐量每秒,
每个I/O的处理时间是2毫秒。
有几个问题请教,
1。如果要看系统当时总体的r/s (每秒读的I/O) , 是不是要这4个设备的(r/s)的数值加起来进行分析 ? 也就是421.5+420.5+437+414,代表系统当时总的读I/O ?
2。这里await的数值比较高,比svctm高 ,文档说这个表示I/O较长的等待确实存在,请问如何找出瓶颈?
3。这里avgqu-sz是指I/O的队列长度,请问单位是什么,应该如何计算这个队列里有多少个I/O或者I/O的大小?
4。 从上述数据可以看出,IO都是来自读,是否可以判断系统的应用类型?随机读还是顺序读?
谢谢 |
|