Tanım
IOPS (Input/Output Operations Per Second), bir depolama biriminin bir saniyede tamamlayabildiği okuma ve yazma işlemi sayısıdır. Özellikle küçük, rastgele erişimlerin yoğun olduğu veritabanı ve sanallaştırma yüklerinde disk performansının en belirleyici ölçüsüdür; MB/s cinsinden aktarım hızından farklı bir şeyi ölçer.
IOPS ile MB/s farkı nedir?
IOPS işlem sayısını, MB/s ise aktarılan veri miktarını ölçer. Büyük bir video dosyasını kopyalamak az sayıda büyük işlemdir; burada MB/s belirleyicidir. Bir veritabanının binlerce küçük kaydı okuması ise çok sayıda küçük işlemdir; burada IOPS belirleyicidir. İkisi arasındaki ilişki basittir: aktarım hızı yaklaşık olarak IOPS ile blok boyutunun çarpımıdır.
Bu yüzden bir diskin reklamlarındaki yüksek sıralı okuma hızı, sitenizin veritabanı performansını tek başına anlatmaz. 4K blok boyutunda rastgele okuma/yazma IOPS değeri ve gecikme (latency) daha anlamlıdır.
IOPS neden önemlidir?
IOPS, aynı anda çok sayıda kullanıcıya hizmet veren sunucularda disk kuyruğunun ne kadar hızlı eridiğini belirlediği için önemlidir. Disk IOPS sınırına ulaştığında işlemler kuyrukta bekler; işlemci boşta görünse bile sistem yavaşlar. Linux'ta bu durum top çıktısındaki yüksek wa (I/O wait) değeriyle ya da iostat -x ile görülebilir.
- Mekanik HDD: düşük IOPS, rastgele erişimde zayıf
- SATA SSD: yüksek IOPS
- NVMe SSD: çok yüksek IOPS ve paralel kuyruk desteği
IOPS nasıl ölçülür?
IOPS en güvenilir biçimde fio aracıyla ölçülür; test, blok boyutu, okuma/yazma oranı ve kuyruk derinliği belirtilerek yapılır. Canlı bir sunucuda yoğun test yapmak diğer servisleri yavaşlatabileceği için ölçümü bakım saatinde ya da test sunucusunda yapın. Disk performansını düzenli izlemek için Linux sunucu performans izleme rehberine bakabilirsiniz. NVMe diskli VPS sunucular yüksek IOPS gerektiren veritabanı yükleri için uygundur.