Geleneksel RAID dizileri için IOPS hesaplanırken aşağıdaki formül kullanılabilir ( Symantec Connect'te IOPS v1.3'ün Askıya Alınmasından Ödünç Alındı ):
Ieffective = (n * Isingle) / (READ% + (F * WRITE%))
Nerede:
- Etkin, etkili IOPS sayısıdır
- Isingle tek bir sürücünün ortalama IOPS değeridir .
- n dizideki disklerin sayısıdır
- READ%, disk profillemesinden alınan okumaların oranıdır
- % WRITE, disk profilinden alınan yazmaların oranıdır
F, RAID yazma cezasıdır :
RAID Level Write Penalty RAID-0 1 RAID-1 2 RAID-5 4 RAID-6 6 RAID-10 2 RAID-DP 2
Formül aslında aşağıdakilerin bir fonksiyonudur:
- Dizideki her bir sürücü için IOPS
- Disk sayısı. Daha fazla disk daha fazla IOPS anlamına gelir
- Her yazma işlemi için RAID cezası.
- RAID5 ve RAID6, her yazma işlemi için 4+ disk işlemi gerektirir. Kontrolör bloğu okumalı ve sonra eşlik verilerini (iki işlem) okumalı, yeni eşlik verilerini hesaplamalı ve sonra eşlik bloğunu güncellemeli ve veri bloğunu güncellemelidir (İki işlem daha). RAID6'nın iki eşlik bloğu vardır ve bu nedenle üç okuma ve üç yazma gerektirir. RAID5 ve RAID6 dizileri bu nedenle RAID1'den daha az IOPS yeteneğine sahiptir.
- RAID1 ve RAID10, aynadaki her diske bir tane olmak üzere yalnızca 2 yazma gerektirir.
Ve açık olmak gerekirse, bunların hepsi teorik performansın bir tahminini verir. Çeşitli denetleyicilerin ve RAID yöntemlerinin bazılarını hızlandırmak için püf noktaları vardır.
RAID5 ve RAID6'nın ZFS eşdeğeri RAIDZ ve RAIDZ2'dir. RAIDZ dizileri için IOPS hesaplarken, RAID5 ve RAID6 için kullandığım formülün aynısını kullanabilir miyim, yoksa ZFS'de yazma işlemleri için gereken işlem sayısını azaltmak için özel hileler var mı?
RAIDZ dizileri için IOPS hesaplanırken kullanılacak farklı bir formül var mı?