如何計算硬盤、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計算僅供參考,計算結果可能會跟物理環境實測有較大偏差。