快速业务通道

关于linux系统性能的查看与分析

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-10
不过我还没发现什么事情比排队还无聊
的).
I/O 系统也和超市排队有很多类似之处:
r/s w/s 类似于交款人的总数
平均队列长度(avgqu-sz)类似于单位时间里平均排队人的个数
平均服务时间(svctm)类似于收银员的收款速度
平均等待时间(await)类似于平均每人的等待时间
平均I/O数据(avgrq-sz)类似于平均每人所买的东西多少
I/O 操作率 (%util)类似于收款台前有人排队的时间比例.
我们可以根据这些数据分析出 I/O 请求的模式,以及 I/O 的速度和响应时间.
下面是别人写的这个参数输出的分析
# iostat -x 1
avg-cpu: %user %nice %sys %idle
16.24 0.00 4.31 79.44
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
/dev/cciss/c0d0
0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29
/dev/cciss/c0d0p1
0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29
/dev/cciss/c0d0p2
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
上面的 iostat 输出表明秒有 28.57 次设备 I/O 操作: 总IO(io)/s = r/s(读)
w/s(写) = 1.02 27.55 = 28.57 (次/秒) 其中写操作占了主体 (w:r = 27:1).
平均每次设备 I/O 操作只需要 5ms 就可以完成,但每个 I/O 请求却需要等上 78ms
,为什么? 发出的 I/O 请求太多 (每秒钟约 29 个),假设这些请求是同时发出的,

那么平均等待时间可以这样计算:
平均等待时间 = 单个 I/O 服务时间 * ( 1 2 ... 请求总数-1) / 请求总数
应用到上面的例子: 平均等待时间 = 5ms * (1 2 ... 28)/29 = 70ms,和 iostat 给
出的78ms 的平均等待时间很接近.这反过来表明 I/O 是同时发起的.
每秒发出的 I/O 请求很多 (约 29 个),平均队列却不长 (只有 2 个 左右),这表明
这 29 个请求的到来并不均匀,大部分时间 I/O 是空闲的.
一秒中有 14.29% 的时间 I/O 队列中是有请求的,也就是说,85.71% 的时间里 I/O
系统无事可做,所有 29 个 I/O 请求都在142毫秒之内处理掉了.
delta(ruse wuse)/delta(io) = await = 78.21 => delta(ruse wuse)/s=78.21 *
delta(io)/s = 78.21*28.57 =2232.8,表明每秒内的I/O请求总共需要等待2232.8ms.所
以平均队列长度应为 2232.8ms/1000ms = 2.23,而iostat 给出的平均队列长度 (avgqu
-sz) 却为 22.35,为什么?! iostat 中有 bug,avgqu-sz值应为 2.23,而不是
22.35.

本文出自 “成长全记录” 博客,请务必保留此出处http://lymrg.blog.51cto.com/1551327/426627

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号