iostat来对linux硬盘IO性能进行了解
上一篇 / 下一篇 2009-07-11 23:53:34 / 个人分类:Lunix 点滴
- 文件版本: V1.0
- 开发商: 本站原创
- 文件来源: 本地
- 界面语言: 简体中文
- 授权方式: 免费
- 运行平台: Win9X/Win2000/WinXP
以前一直不太会用这个参数。现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器51Testing软件测试网FT)I#W6rh
51Testing软件测试网t+]/};p1u-W k%V# iostat -x 1 10
!uZ?qL@051Testing软件测试网/a m(]Wz[K0OBV Linux 2.6.18-92.el5xen 02/03/200951Testing软件测试网6fqg;d#\i'j,Ok ?
avg-cpu: %user %nice %system %iowait %steal %idle
1.10 0.00 4.82 39.54 0.07 54.4651Testing软件测试网1EkF{y x3Z
w$s.x qJL&Y1M0 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
r!Z~ j i5I8gn051Testing软件测试网8^{$q+f;_5usda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28
J"hP#`^W"B7Q%k0Y*Ap"_5DUW,DP0 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
z:`XP_%@051Testing软件测试网xx bdD j5Q-] sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
+~Y,Z#z?-rh5qA0 sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0051Testing软件测试网8B;lD AwOI|FP
sde 0.00 0.10 0.30 0.20 2.40 2.40 9.60 0.00 1.60 1.60 0.0851Testing软件测试网5Q!JdLX!c
,n c P:TJHK(|5Gkq0 sdf 17.40 0.50 102.00 0.20 12095.20 5.60 118.40 0.70 6.81 2.09 21.3651Testing软件测试网TSKvc+EA
{'MA6yW0 sdg 232.40 1.90 379.70 0.50 76451.20 19.20 201.13 4.94 13.78 2.45 93.1651Testing软件测试网N/B Qm]f&T
el#}4K5vp]6Qa0 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s51Testing软件测试网k#Q"M WS#D4H
51Testing软件测试网)T4] fe;T7Ek]vwrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s51Testing软件测试网HHI/b hF6o`6U
_0w)hX:Y+U r0 r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s51Testing软件测试网zP7vXI3K4@5d*\
51Testing软件测试网C/dv1k5])mh ]w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s51Testing软件测试网`GKW%]|${K[
$f4zb2?,_8x2a0 rsec/s: 每秒读扇区数。即 delta(rsect)/s51Testing软件测试网8f%uoqc?9vw&u-C[
51Testing软件测试网u _f,~ih/lwsec/s: 每秒写扇区数。即 delta(wsect)/s
u$|8~n ^Hm7z051Testing软件测试网4`r:W[.aSrkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wa&S%n |mO)A8c0$^)G&I X6LE:?-T0 wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)
q S QN"G1e'M0xKor+b0 avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
(Q%~Qr2k6v1Q051Testing软件测试网OHn6YSo LmI avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。51Testing软件测试网8]1E'BSiS a
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)51Testing软件测试网\S,bLKd N&S
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)51Testing软件测试网QEgK&r@^
K0OyoKL0 %util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
;Q2^/[y6E;s4y5Z0hI B#|:s7i?C/}+I0 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
+il+yc C![&_ `051Testing软件测试网C(g4@4gj可能存在瓶颈。51Testing软件测试网%?5[$I~$c
~+g.Rd;b$X)M(rf0 idle小于70% IO压力就较大了,一般读取速度有较多的wait.51Testing软件测试网a$gT2L'\4I{$e;\c
51Testing软件测试网hm6Ui[]+mDE同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)
_h&N H0|{U0nG051Testing软件测试网bRe4zm2iXY"}G 另外还可以参考
@{
zV*U0 svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。51Testing软件测试网W9f!H @7l
队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
d0oJh&aa.Wi0:wve#l/[|U0别人一个不错的例子.(I/O 系统 vs. 超市排队)
'C0K6\%W3f051Testing软件测试网m"^QytK` Fp举一个例子,我们在超市排队 checkout 时,怎么决定该去哪个交款台呢? 首当是看排的队人数,5个人总比20人要快吧? 除了数人头,我们也常常看看前面人购买的东西多少,如果前面有个采购了一星期食品的大妈,那么可以考虑换个队排了。还有就是收银员的速度了,如果碰上了连 钱都点不清楚的新手,那就有的等了。另外,时机也很重要,可能 5 分钟前还人满为患的收款台,现在已是人去楼空,这时候交款可是很爽啊,当然,前提是那过去的 5 分钟里所做的事情比排队要有意义 (不过我还没发现什么事情比排队还无聊的)。