Dedicated Sunucu

Depolama Performansı Ölçmek: IOPS, Gecikme ve Kıyaslama Tuzakları

Disk performansını doğru ölçme: metrik seçimi, erişim deseni, kıyaslama tuzakları ve darboğaz tespiti rehberi. Depolama Performansı Ölçmek: IOPS, Gecikme ve…

Depolama Performansı Ölçmek: IOPS, Gecikme ve Kıyaslama Tuzakları
İçindekiler
  1. Üç Farklı Metrik
  2. Erişim Deseni
  3. Kıyaslama Tuzakları
  4. Sürekli Yük Altında
  5. Gerçekçi Ölçüm Kurmak
  6. Darboğaz Nerede?
  7. İyileştirme Yolları
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. Hangi metriğe bakmalıyım?
  11. Test sonuçlarım neden inanılmaz yüksek?
  12. Hız neden bir süre sonra düşüyor?
  13. Yavaşlığın gerçekten diskten kaynaklandığını nasıl anlarım?

Depolama Performansı Ölçmek: IOPS, Gecikme ve Kıyaslama Tuzakları

Yeni sunucunuzun disk testi saniyede iki gigabayt okuma gösteriyor. Uygulamanız ise hâlâ yavaş. Ölçtüğünüz sayı gerçek ama sizin iş yükünüzle hiçbir ilgisi yok.

Bu yazı, depolama performansını doğru ölçmeyi ele alıyor.

Üç Farklı Metrik

Metrik Neyi ölçer
Aktarım hızı Saniyede kaç megabayt
İşlem sayısı Saniyede kaç okuma-yazma
Gecikme Bir işlem ne kadar sürüyor

Hangi metriğin önemli olduğu iş yükünüze bağlıdır ve bu, çoğu yanlış kararın kaynağıdır: büyük dosya kopyalamada aktarım hızı belirleyicidir; veritabanı çalıştıran bir sunucuda ise işlem sayısı ve gecikme belirleyicidir.

Bir veritabanı, saniyede binlerce küçük ve rastgele okuma yapar. Böyle bir yükte yüksek aktarım hızı hiçbir şey ifade etmez.

Üçüncü satır ise kullanıcı deneyimine en yakın metriktir. Yüksek işlem sayısı ama yüksek gecikme, uygulamanın yavaş hissedilmesine yol açar.

Erişim Deseni

Ölçüm, gerçek erişim desenini yansıtmalıdır:

  • Sıralı mı rastgele mi?
  • Okuma mı yazma mı ağırlıklı?
  • Blok boyutu ne?
  • Kaç eşzamanlı işlem var?

Birinci madde en büyük farkı yaratır: dönen disklerde sıralı okuma ile rastgele okuma arasında yüzlerce kat performans farkı vardır, çünkü rastgele erişimde kafa sürekli hareket eder.

Katı hâl disklerde bu fark çok daha küçüktür ama yine de mevcuttur.

Üçüncü madde ise ölçümü tamamen değiştirir. Dört kilobaytlık bloklarla yapılan test ile bir megabaytlık bloklarla yapılan test, aynı diskte çok farklı sonuçlar verir.

Dördüncü madde gerçekçiliği belirler. Tek iş parçacıklı bir test, çok kullanıcılı bir sunucunun gerçek yükünü yansıtmaz.

Kıyaslama Tuzakları

Yanlış ölçüm yapmanın kolay yolları:

  1. Önbelleği hesaba katmamak.
  2. Çok kısa test çalıştırmak.
  3. Sıkıştırılabilir veri kullanmak.
  4. Boş diskte test etmek.
  5. Tek bir çalıştırmaya güvenmek.

Birinci madde en yaygın hatadır: test verisi sunucu belleğine sığıyorsa ölçtüğünüz şey disk değil bellek hızıdır ve inanılmaz sonuçlar alırsınız.

Bunu önlemek için test veri kümesi, sunucu belleğinin birkaç katı olmalıdır.

Üçüncü madde bazı depolama sistemlerinde sonucu bozar. Sıfırlarla dolu bir test dosyası, sıkıştırma yapan bir sistemde neredeyse hiç disk alanı kullanmaz ve gerçekçi olmayan hız verir.

Dördüncü madde ise katı hâl disklerde belirgindir. Neredeyse dolu bir disk, boş bir diskten belirgin biçimde yavaş çalışabilir.

İkinci madde ise ısınma etkisini gizler. Kısa testler, sürekli yük altında düşen performansı göstermez.

Sürekli Yük Altında

Kısa testlerin göstermediği bir davranış vardır:

Aşama Performans
İlk saniyeler Çok yüksek
Tampon dolduktan sonra Belirgin düşüş
Kararlı durum Gerçek performans

Bu davranış özellikle tüketici sınıfı disklerde çarpıcıdır: bazı disklerde ilk otuz saniye çok yüksek hız görülür, sonra hız üçte birine düşer — çünkü hızlı yazma tamponu dolar ve gerçek hücrelere yazmaya başlanır.

Yalnızca kısa test yapan biri, hiç ulaşamayacağı bir performansı gerçek sanır.

Sunucu sınıfı disklerde bu düşüş çok daha azdır ve fiyat farkının önemli bir gerekçesidir.

Gerçekçi Ölçüm Kurmak

  • Kendi iş yükünüzü taklit edin.
  • Bellek boyutunun katı veri kullanın.
  • Uzun süre çalıştırın.
  • Gecikme dağılımına bakın.
  • Birkaç kez tekrarlayın.

Dördüncü madde en çok bilgi verenidir: ortalama gecikme iyi görünürken en kötü yüzde birlik dilim yüz kat daha yavaş olabilir ve kullanıcı deneyimini asıl belirleyen o dilimdir.

Bu nedenle yüksek yüzdelik değerlerini raporlamak gerekir.

Birinci madde ise en değerli yaklaşımdır. Kendi veritabanınızın gerçek sorgularını çalıştırmak, sentetik testlerden çok daha anlamlı sonuç verir.

Darboğaz Nerede?

Disk her zaman suçlu değildir:

  1. Disk kuyruğu uzunluğu. Disk mi bekletiyor?
  2. Denetleyici sınırı.
  3. Bağlantı yolu kapasitesi.
  4. İşlemci bekleme oranı.

Dördüncü madde teşhiste ilk bakılacak yerdir: işlemcinin giriş-çıkış bekleme oranı yüksekse sistem gerçekten diski bekliyordur; düşükse yavaşlığın nedeni başka yerdedir.

Bu tek ölçüm, saatlerce yanlış yerde arama yapmayı önler.

İkinci madde RAID kullanan sistemlerde önemlidir. Yeterince hızlı diskler, yavaş bir denetleyici arkasında potansiyelini gösteremez.

İyileştirme Yolları

Yöntem Etki
Bellek eklemek Önbellek artar, disk yükü azalır
RAID seviyesi değiştirmek Yazma performansını etkiler
Veri ile günlüğü ayırmak Veritabanlarında belirgin
Dosya sistemi ayarları Küçük ama ücretsiz kazanç

Birinci satır çoğu zaman en ucuz çözümdür: bellek eklemek disk erişimlerinin büyük kısmını ortadan kaldırabilir çünkü sık okunan veri bellekte kalır — daha hızlı disk almaktan genellikle daha ucuz ve daha etkilidir.

Üçüncü satır ise veritabanı sunucularında belirgin fark yaratır. Günlük yazma işlemi sıralı ve sürekli olduğu için ayrı bir cihazda tutulması ikisini de hızlandırır.

Disk yapılandırması ve denetleyici seçenekleri sipariş aşamasında belirlenir; kurumsal sunucu kiralama tekliflerinde disk türü, adedi ve RAID seçenekleri ihtiyaca göre yapılandırılabilir.

Sonuç

Depolama ölçümünde en yaygın hata yanlış metriği takip etmektir: büyük dosya kopyalamada aktarım hızı, veritabanı sunucusunda ise işlem sayısı ve gecikme belirleyicidir. Test veri kümeniz sunucu belleğinin birkaç katı olmalı, yoksa ölçtüğünüz şey disk değil bellek hızıdır. Kısa test yapmayın — bazı disklerde ilk otuz saniye çok yüksek hız görülür, sonra tampon dolunca hız üçte birine düşer. Ve yavaşlıktan diski suçlamadan önce işlemcinin bekleme oranına bakın.

Sıkça Sorulan Sorular (SSS)

Hangi metriğe bakmalıyım?

İş yükünüze bağlı. Büyük dosya kopyalama ve yedeklemede aktarım hızı, veritabanı çalıştıran sunucuda ise işlem sayısı ve gecikme belirleyicidir. Bir veritabanı saniyede binlerce küçük rastgele okuma yapar; böyle bir yükte yüksek aktarım hızı hiçbir şey ifade etmez.

Test sonuçlarım neden inanılmaz yüksek?

Muhtemelen test verisi sunucu belleğine sığıyor ve siz disk değil bellek hızını ölçüyorsunuz. Test veri kümesi sunucu belleğinin birkaç katı olmalıdır. Ayrıca sıfırlarla dolu test dosyaları, sıkıştırma yapan sistemlerde gerçekçi olmayan sonuç verir.

Hız neden bir süre sonra düşüyor?

Hızlı yazma tamponu dolduğu ve gerçek hücrelere yazmaya başlandığı için. Bazı disklerde ilk otuz saniye çok yüksek hız görülür, sonra hız üçte birine düşer. Sunucu sınıfı disklerde bu düşüş çok daha azdır ve fiyat farkının önemli bir gerekçesidir.

Yavaşlığın gerçekten diskten kaynaklandığını nasıl anlarım?

İşlemcinin giriş-çıkış bekleme oranına bakın. Yüksekse sistem gerçekten diski bekliyordur; düşükse yavaşlığın nedeni başka yerdedir. Bu tek ölçüm saatlerce yanlış yerde arama yapmayı önler. Ayrıca disk kuyruk uzunluğunu ve denetleyici sınırlarını kontrol edin.