免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6139 | 回复: 12
打印 上一主题 下一主题

iops的计算。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-08 15:55 |只看该作者 |倒序浏览
假定:
1,硬盘没有cache,512byte的随机iops为150
2,Raid卡和存储都没有cache
3,主机端io size 512byte的随机io,读写比例是2:3
4,Raid5

问题,计算要10000的iops需要多少块盘?
10000*0.4+10000*0.6*4=28000
28000/150=186.7即需要187块盘才可以达到需求,
则最大的吞吐量为10000*512byte=5.12M/s

请问,这样的计算是否正确?

[ 本帖最后由 ppm 于 2009-9-8 15:57 编辑 ]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
2 [报告]
发表于 2009-09-08 17:02 |只看该作者
你还少了一个假定,就是raid控制器不能并发io,也就是这个raid5时刻处于单个io的读改写的状态。有了这些假设,就可以大致算出了。raid5写惩罚,在单个随机io读改写模式下,共额外产生1个写和两个读。所以10000*0.4*2+10000*0.6*2=20000,20000除以150=134。不过这个数字基本没多大意义。
    实际情况下,raid5视磁盘数量多少,可以并发不少io的,最好的情况下是可以整条写,写惩罚没有读io,而raid5任何情况下写惩罚中的写io只有一个,就是写parity。而随着并发几率增加,读改写或者重构写时的写惩罚更为严重,增加了大量的读操作。
    最后,还要看后端的总线或者loop的限制,一个loop所能提供的带宽和io都有限。

论坛徽章:
0
3 [报告]
发表于 2009-09-08 21:21 |只看该作者
原帖由 冬瓜头 于 2009-9-8 17:02 发表
你还少了一个假定,就是raid控制器不能并发io,也就是这个raid5时刻处于单个io的读改写的状态。有了这些假设,就可以大致算出了。raid5写惩罚,在单个随机io读改写模式下,共额外产生1个写和两个读。所以10000* ...


如果raid控制器和存储都没有cache,那么就不可能有并发io了,有并发io的情况就是我在cache攒了很多数据,
计算完了以后整体扔给后端硬盘。

极端情况:
比如我一个512byte的io到达了raid控制器,并且raid5的stripe size也是512byte,
raid控制器所要做的工作就是选一个合适的盘并计算其校验值,并把校验值写到另外的一块盘。
假如cpu非常的烂,还没有完成所有的计算,可是主机端的下一个512byte的io又来了,如果有cache,
那么这512byte可以放到cache里,如果没有cache,那就丢弃,然后返回让主机端重发?

[ 本帖最后由 ppm 于 2009-9-8 21:23 编辑 ]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
4 [报告]
发表于 2009-09-08 21:47 |只看该作者
呵呵,对cache的理解还是有偏差。“没有cache”,对于raid5是不可能的。所谓没有cache,是说cache被bypass了,write through了,而不是物理上没有cache。数据都是先放到cache中的。

论坛徽章:
0
5 [报告]
发表于 2009-09-08 21:56 |只看该作者
原帖由 冬瓜头 于 2009-9-8 21:47 发表
呵呵,对cache的理解还是有偏差。“没有cache”,对于raid5是不可能的。所谓没有cache,是说cache被bypass了,write through了,而不是物理上没有cache。数据都是先放到cache中的。



再假如:有cache

主机端发送过来的数据cache装满了,而cpu非常烂处理不了那么多,那新来的io是丢弃还是怎么处理?

论坛徽章:
0
6 [报告]
发表于 2009-09-08 22:00 |只看该作者
原帖由 冬瓜头 于 2009-9-8 21:47 发表
呵呵,对cache的理解还是有偏差。“没有cache”,对于raid5是不可能的。所谓没有cache,是说cache被bypass了,write through了,而不是物理上没有cache。数据都是先放到cache中的。



bypass怎么理解?

如果没有bypass,那么就是主机端来了10M的数据,放在cache当中,raid控制器取出来一系列运算以后,扔给了后端的硬盘。这样理解对么?
那怎么是bypass呢?数据来了不放在控制器cache中,放到cpu cache了?

[ 本帖最后由 ppm 于 2009-9-8 22:02 编辑 ]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
7 [报告]
发表于 2009-09-08 22:15 |只看该作者
看来需要系统给你解释一下cache了,忙会,闲的时候写一写贴上来。

论坛徽章:
0
8 [报告]
发表于 2009-09-11 20:51 |只看该作者
好好学习,存储的IOPS ,希望冬瓜头多给我们讲解讲解这方面的知识。谢谢

论坛徽章:
0
9 [报告]
发表于 2009-09-13 19:46 |只看该作者
为了搞明白raid是怎么回事,我今天特地去书店看了大话存储,讲cache的地方很少啊。
不过总算有点明白,其实对对来说cache比较有好理解,对写来说讲计算内存更好理解,
还有就是缓存和缓冲,有啥具体的区别?

论坛徽章:
0
10 [报告]
发表于 2009-09-24 16:06 |只看该作者
冬瓜头兄弟呢?兄弟等着你的高见呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP