文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>磁盘IO统计数据(四)

磁盘IO统计数据(四)

时间:2007-05-07  来源:LoveForLinux

4. 磁盘IO统计数据举例

 

 

# 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 操作:

delta(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。

相关阅读 更多 +
排行榜 更多 +
拉力竞速2

拉力竞速2

体育竞技 下载
文字乱舞水浒

文字乱舞水浒

角色扮演 下载
蓝图公考

蓝图公考

学习教育 下载