iops计算的疑问

看到了一篇文章讲的的iops的计算,原作者已经不详了,阅读以后对其中的IOPS计算尚有点疑问,请教大家一下。原文如下:那我们假定一个case,业务的iops是10000,读cache命中率是30%,读iops为60%,写iops为40%,磁盘个数为120,那么分别计算在raid5与raid10的情况下,每个磁盘的iops为多少。 ra...显示全部
看到了一篇文章讲的的iops的计算,原作者已经不详了,阅读以后对其中的IOPS计算尚有点疑问,请教大家一下。原文如下:
那我们假定一个case,业务的iops是10000,读cache命中率是30%,读iops为60%,写iops为40%,磁盘个数为120,那么分别计算在raid5与raid10的情况下,每个磁盘的iops为多少。 raid5: 单块盘的iops = (10000*(1-0.3)*0.6 + 4 * (10000*0.4))/120 = (4200 + 16000)/120 = 168 这里的10000*(1-0.3)*0.6表示是读的iops,比例是0.6,除掉cache命中,实际只有4200个iops 而4 * (10000*0.4) 表示写的iops,因为每一个写,在raid5中,实际发生了4个io,所以写的iops为16000个 为了考虑raid5在写操作的时候,那2个读操作也可能发生命中,所以更精确的计算为: 单块盘的iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)*(1-0.3) + 2 * (10000*0.4))/120 = (4200 + 5600 + 8000)/120 = 148 计算出来单个盘的iops为148个,基本达到磁盘极限 raid10 单块盘的iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4))/120 = (4200 + 8000)/120 = 102 可以看到,因为raid10对于一个写操作,只发生2次io,所以,同样的压力,同样的磁盘,每个盘的iops只有102个,还远远低于磁盘的极限iops。
我对里面不太明白的是,1.为什么每一个写,在raid5中,实际发生了4个io,而读的时候不是呢?读的时候不是从3个有效+1个校验出来的?我理解的是一个写需要写3个有效地数据加1个校验,读的时候难道有所不同?
2.为了考虑raid5在写操作的时候,那2个读操作也可能发生命中,对于这句不太明白,写的时候为什么会有读操作也可能发生命中,而且为啥是2个,这个是个经验的问题,还是?
初学,有很多的疑问,希望能得到各位的耐心解答,谢谢!

[ 本帖最后由 kkylee 于 2009-4-20 18:28 编辑 ]收起
参与8

查看其它 7 个回答kkylee的回答

kkyleekkylee学生电子科大
原帖由 skyzqq 于 2009-4-26 12:25 发表


RAID5 的写入方式是  读出原有数据--读出校验位---计算新的校验位---写入写的数据---写入校验位,读数据不需要校验。

RAID5中写操作会占用变化数据所在磁盘和校验盘,未被占用的盘可以同时进行写操作。

文中所说的是减 ...
高见,先学习了
2009-04-30
浏览1555

回答者

kkylee
学生电子科大
擅长领域: AIX服务器Unix

kkylee 最近回答过的问题

回答状态

  • 发布时间:2009-04-30
  • 关注会员:0 人
  • 回答浏览:1555
  • X社区推广