如何計算硬碟、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計算僅供參考,計算結果可能會跟物理環境實測有較大偏差。
作者介紹:雲技術社群專家 蔣迪 (微信公眾號:雲技術實踐)
蔣迪,資深虛擬化基礎設施工程師,《KVM私有云架構設計與實踐》作者,雲技術社群專家,擅長KVM雲平臺架構解析與虛擬化POC,具有一線開發與交付經驗。