เมื่อทำการคำนวณ IOPS สำหรับอาร์เรย์ RAID แบบดั้งเดิมใคร ๆ ก็สามารถใช้สูตรต่อไปนี้ได้ (ยืมมาจากการหยุดแฮงค์ของ IOPS v1.3บน Symantec Connect):
Ieffective = (n * Isingle) / (READ% + (F * WRITE%))
ที่ไหน:
- ประสิทธิภาพคือจำนวน IOPS ที่มีประสิทธิภาพ
- Isingle เป็นIOPS เฉลี่ยของไดรฟ์เดียว
- n คือจำนวนดิสก์ในอาร์เรย์
- READ% คือส่วนของการอ่านที่นำมาจากการทำโปรไฟล์ดิสก์
- WRITE% เป็นส่วนของการเขียนที่นำมาจากการทำโปรไฟล์ดิสก์
F คือการลงโทษการเขียน RAID :
RAID Level Write Penalty RAID-0 1 RAID-1 2 RAID-5 4 RAID-6 6 RAID-10 2 RAID-DP 2
สูตรนี้เป็นหน้าที่ของ:
- IOPS สำหรับแต่ละไดรฟ์ในอาเรย์
- จำนวนของดิสก์ ดิสก์เพิ่มเติมหมายถึง IOPS ที่มากขึ้น
- การลงโทษ RAID สำหรับการดำเนินการเขียนแต่ละครั้ง
- RAID5 & RAID6 ต้องการการดำเนินงานดิสก์ 4+ สำหรับการเขียนทุกครั้ง คอนโทรลเลอร์ต้องอ่านบล็อกและอ่านข้อมูลพาริตี (การดำเนินการสองครั้ง) การคำนวณข้อมูลพาริตีใหม่จากนั้นอัปเดตบล็อกแพริตีและอัปเดตบล็อกข้อมูล (การดำเนินการอีกสองครั้ง) RAID6 มีสองพาริตี้บล็อกและดังนั้นจึงต้องมีสามอ่านและสามเขียน ดังนั้น RAID5 และ RAID6 จึงมีความสามารถในการ IOPS น้อยลงจากนั้น RAID1
- RAID1 & RAID10 ต้องการเพียง 2 การเขียนหนึ่งรายการสำหรับแต่ละดิสก์ในมิเรอร์
และเพื่อให้มีความชัดเจนทั้งหมดนี้แสดงการประเมินประสิทธิภาพเชิงทฤษฎี คอนโทรลเลอร์และวิธีการ RAID ต่าง ๆ มีลูกเล่นเพื่อเพิ่มความเร็วให้กับบางส่วน
RAID5 และ RAID6 ที่เทียบเท่าของ ZFS คือ RAIDZ และ RAIDZ2 เมื่อคำนวณ IOPS สำหรับอาร์เรย์ RAIDZ ฉันสามารถใช้สูตรเดียวกับที่ฉันใช้สำหรับ RAID5 & RAID6 หรือ ZFS มีลูกเล่นพิเศษเพื่อลดจำนวนของการดำเนินการที่จำเป็นสำหรับการดำเนินการเขียน
มีสูตรอื่นที่จะใช้เมื่อคำนวณ IOPS สำหรับอาร์เรย์ RAIDZ หรือไม่