分享

硬盘、RAID组与Ceph的IOPS公式与工具

 艾莫图书馆 2017-06-29

机械硬盘

7200硬盘IOPS = 1000/(3 + 1000*(7200/60)/2) = 140

10k硬盘IOPS = 1000/(3 + 60000/10000/2) = 167

15k硬盘IOPS = 1000/(3 + 60000/15000/2) = 200

(IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。

其中3为寻道延迟,7200/10k/15k为转速(rpm),1000*(7200/60)/2为旋转延迟(旋转延迟一般用转一圈所需时间的1/2表示),结果为理论峰值,实际还会有系统延迟导致测得IOPS一般低于此值。)

RAID组

由于RAID组需要校验以提供恢复功能,所以会存在一定写惩罚(一个业务写操作对应实际硬盘的I/O操作,可以参考https://community./docs/DOC-26624),这个系数如下:

RAID0: 1

RAID1: 2

RAID5: 4

RAID6: 6

RAID1-0: 2


所以RAID组IOPS = 硬盘写IOPS*硬盘数量*写操作百分比/写惩罚系数 + 硬盘读IOPS*硬盘数量*读操作百分比。 


以4块IOPS为180的SAS硬盘组RAID 6然后百分百随机写操作为例:

IOPS = 180*4/6 = 120 


为方便大家,笔者在此提供一个网站供大家参考使用,里面包括RAID、备份、虚拟化、IP等多种计算工具,http:///raidperf.pl。


Ceph的IOPS经验公式


由于Ceph存储结构不同于物理硬件,所以影响其IOPS的因素主要有网络、副本数量、日志、OSD(硬盘)数量、OSD服务器数量、OSD IOPS等,这里给出一个来自Mirantis的经验公式: 


IOPS = 硬盘IOPS * 硬盘数量 * 0.88 / 副本数量


其中0.88为4-8k随机读操作占比(88%),如果OSD不是以硬盘为单位而是RAID组,则替换公式中对应参数。 


关于Ceph的IOPS计算仅供参考,计算结果可能会跟物理环境实测有较大偏差。



作者介绍:云技术社区专家 蒋迪

蒋迪,资深虚拟化基础设施工程师,《KVM私有云架构设计与实践》作者,云技术社区专家,擅长KVM云平台架构解析与虚拟化POC,具有一线开发与交付经验。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多