如何计算硬盘、RAID组与Ceph的IOPS
机械硬盘
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
其中3为寻道延迟,7200/10k/15k为转速(rpm),1000*(7200/60)/2为旋转延迟(旋转延迟一般用转一圈所需时间的1/2表示),结果为理论峰值,实际还会有系统延迟导致测得IOPS一般低于此值。
RAID组
由于RAID组需要校验以提供恢复功能,所以会存在一定写惩罚(一个业务写操作对应实际硬盘的I/O操作,可以参考https://community.emc.com/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
Ceph的IOPS经验公式
由于Ceph存储结构不同于物理硬件,所以影响其IOPS的因素主要有网络、副本数量、日志、OSD(硬盘)数量、OSD服务器数量、OSD IOPS等,这里给出一个来自Mirantis的经验公式:
IOPS = 硬盘IOPS * 硬盘数量 * 0.88 / 副本数量
其中0.88为4-8k随机读操作占比(88%),如果OSD不是以硬盘为单位而是RAID组,则替换公式中对应参数。
关于Ceph的IOPS计算仅供参考,计算结果可能会跟物理环境实测有较大偏差。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库