Saat menghitung IOPS untuk array RAID tradisional, seseorang dapat menggunakan rumus berikut (Dipinjam dari Mendapatkan IOPS v1.3 pada Symantec Connect):
Ieffective = (n * Isingle) / (READ% + (F * WRITE%))
Dimana:
- Efektif adalah jumlah efektif IOPS
- Isingle adalah IOPS rata-rata satu drive .
- n adalah jumlah disk dalam array
- READ% adalah sebagian kecil dari pembacaan yang diambil dari profil disk
- WRITE% adalah fraksi dari penulisan yang diambil dari profil disk
F adalah penalti penulisan RAID :
RAID Level Write Penalty RAID-0 1 RAID-1 2 RAID-5 4 RAID-6 6 RAID-10 2 RAID-DP 2
Formula pada dasarnya adalah fungsi dari:
- IOPS untuk setiap drive individual dalam array
- Jumlah disk. Lebih banyak disk berarti lebih banyak IOPS
- Denda RAID untuk setiap operasi penulisan.
- RAID5 & RAID6 membutuhkan 4+ operasi disk untuk setiap penulisan. Pengontrol harus membaca blok dan kemudian membaca data paritas (dua operasi), menghitung data paritas baru dan kemudian memperbarui blok paritas dan memperbarui blok data (Dua operasi lagi). RAID6 memiliki dua blok paritas dan karenanya memerlukan tiga kali baca dan tiga tulisan. RAID5 & RAID6 array karena itu mampu IOPS lebih sedikit daripada RAID1.
- RAID1 & RAID10 hanya membutuhkan 2 penulisan, satu untuk setiap disk di mirror.
Dan untuk menjadi jelas, ini semua memberikan perkiraan kinerja teoretis. Berbagai pengontrol dan metode RAID memiliki trik untuk mempercepatnya.
Setara dengan ZFS dari RAID5 & RAID6 adalah RAIDZ dan RAIDZ2. Saat menghitung IOPS untuk array RAIDZ, dapatkah saya menggunakan rumus yang sama yang saya gunakan untuk RAID5 & RAID6, atau apakah ZFS memiliki trik khusus untuk mengurangi jumlah operasi yang diperlukan untuk operasi penulisan.
Apakah ada formula yang berbeda untuk digunakan ketika menghitung IOPS untuk array RAIDZ?