Dedicated Sunucu

Sunucu Performans Testi: Neyi, Nasıl Ölçmeli?

Sunucu performans ölçümü: CPU, bellek, disk ve ağ metrikleri, ölçüm tuzakları, uygulama seviyesi yük testi ve referans çizgisi. Sunucu Performans Testi…

Sunucu Performans Testi: Neyi, Nasıl Ölçmeli?
İçindekiler
  1. Neden Ölçmeli?
  2. Dört Alan
  3. 1. İşlemci
  4. 2. Bellek
  5. 3. Disk
  6. 4. Ağ
  7. Ölçüm Tuzakları
  8. Önbellek Yanılgısı
  9. Tek Seferlik Ölçüm
  10. Yanlış İş Yükü Profili
  11. Üretim Ortamında Test
  12. Sentetik Testin Sınırı
  13. Uygulama Seviyesi Test
  14. Referans Çizgisini Saklayın
  15. Ne Zaman Ölçmeli?
  16. Sonuç
  17. Sıkça Sorulan Sorular (SSS)
  18. Hangi metriği ölçmeliyim?
  19. Disk testim çok yüksek sonuç verdi, doğru mu?
  20. Canlı sunucuda test yapabilir miyim?
  21. Referans çizgim yok, ne yapmalıyım?

Sunucu Performans Testi: Neyi, Nasıl Ölçmeli?

Yeni bir sunucu teslim aldığınızda ilk yapılması gereken şeylerden biri, gerçekten ne aldığınızı ölçmektir. Teklifte yazan özellikler ile pratikte elde ettiğiniz performans her zaman örtüşmez — özellikle disk ve ağ tarafında.

Bu rehber, fiziksel sunucularda performans ölçümünü ve sonuçların doğru yorumlanmasını anlatıyor.

Neden Ölçmeli?

  • Teslim doğrulaması. Aldığınız donanım, sipariş ettiğiniz özellikleri gerçekten sunuyor mu?
  • Referans çizgisi oluşturma. Sunucu yeniyken ölçtüğünüz değerler, ileride "yavaşladı mı" sorusunu cevaplamanızı sağlar. Bu referans olmadan yavaşlama iddiası bir histen ibarettir.
  • Darboğaz tespiti. Hangi bileşen sınırlayıcı?
  • Karşılaştırma. İki sağlayıcı veya iki yapılandırma arasında somut kıyas.

İkinci madde en değerlisidir ve en çok atlanır: sunucu yeniyken ölçüm yapmazsanız, bir yıl sonra karşılaştıracak veriniz olmaz.

Dört Alan

1. İşlemci

İki ayrı ölçüm gerekir ve karıştırılmamalıdır:

  • Tek çekirdek performansı. Tek iş parçacıklı iş yükleri (oyun sunucusu, bazı uygulama işlemleri) için belirleyicidir.
  • Çok çekirdek performansı. Paralel iş yükleri (web sunucusu, derleme, sanallaştırma) için belirleyicidir.

Bu ayrımı yapmadan alınan bir "CPU puanı" yanıltıcıdır: çok çekirdekli bir sunucu toplam puanda öndeyken, tek çekirdek performansında geride olabilir.

2. Bellek

Bant genişliği ve gecikme ölçülür. Bellek performansı çoğu iş yükünde darboğaz değildir — ancak ölçüm, beklenen hızda çalışıp çalışmadığını doğrular. Yanlış yapılandırılmış bellek modülleri beklenenin altında çalışabilir.

3. Disk

En kritik ve en yanıltıcı ölçüm alanıdır. Dört farklı metrik vardır ve hangisinin önemli olduğu iş yükünüze bağlıdır:

Metrik Neyi ölçer Kimin için önemli
Sıralı okuma/yazma Büyük dosya aktarımı Medya, yedekleme
Rastgele okuma/yazma Küçük, dağınık işlemler Veritabanı, web sunucusu
IOPS Saniyedeki işlem sayısı Veritabanı
Gecikme Tek işlemin süresi Etkileşimli uygulamalar

Pazarlama malzemelerinde genellikle sıralı hızlar öne çıkarılır çünkü en yüksek sayılar oradadır. Oysa bir veritabanı için asıl önemli olan rastgele işlem performansı ve gecikmedir — ve o değerler çok daha düşüktür.

4. Ağ

  • Bant genişliği. Gerçekten port hızına ulaşabiliyor musunuz?
  • Gecikme. Hedef kitlenizin bulunduğu yerlerden ölçün.
  • Kararlılık. Gecikme ne kadar dalgalanıyor? Ortalamadan daha önemli olabilir.
  • Paket kaybı. Düşük gecikmeyle birlikte paket kaybı, yüksek gecikmeden kötü bir deneyim üretir.

Ölçüm Tuzakları

Yanlış yapılan bir ölçüm, hiç ölçmemekten kötüdür çünkü yanlış karara yol açar.

Önbellek Yanılgısı

Disk testi yaparken, test dosyası bellekteki önbelleğe sığarsa ölçtüğünüz şey disk değil bellek hızıdır — ve gerçekçi olmayan yüksek sonuçlar alırsınız.

Çözüm: test dosyası boyutunu, sunucunun belleğinden belirgin biçimde büyük seçin.

Tek Seferlik Ölçüm

Tek bir ölçüm, o anki koşulları yansıtır. Arka planda çalışan bir görev sonucu bozabilir. Testi birkaç kez tekrarlayın ve tutarlılığa bakın.

Yanlış İş Yükü Profili

Sıralı okuma testi yapıp "diskim çok hızlı" sonucuna varmak, veritabanı çalıştıracaksanız yanıltıcıdır. İş yükünüze benzeyen bir profille test edin.

Üretim Ortamında Test

Performans testleri kaynak tüketir ve canlı hizmeti etkiler. Testleri sunucu üretime alınmadan önce veya bakım penceresinde yapın.

Sentetik Testin Sınırı

Sentetik testler bileşen performansını ölçer ama uygulamanızın performansını göstermez. En anlamlı test, gerçek uygulamanızı gerçek iş yüküyle çalıştırmaktır.

Uygulama Seviyesi Test

Sentetik ölçümlerden sonra asıl soruyu cevaplayın: bu sunucu benim uygulamamla kaç eşzamanlı kullanıcı taşır?

Yük testi yaparken dikkat edilecekler:

  1. Gerçekçi senaryo kurun. Yalnızca ana sayfayı test etmek, gerçek kullanımı yansıtmaz. Ziyaretçilerin gerçekten gezdiği yolu taklit edin.
  2. Kademeli artırın. Yükü yavaşça yükseltip kırılma noktasını bulun — sistemin hangi eşikte bozulmaya başladığını görmek, tek bir yüksek yük denemesinden değerlidir.
  3. Yanıt süresi dağılımına bakın. Ortalama yanıltıcıdır; en yavaş isteklere bakın. Ortalama iyi görünürken kullanıcıların bir kısmı çok kötü deneyim yaşıyor olabilir.
  4. Hata oranını izleyin. Sistem yavaşlamakla kalmıyor, hata da veriyor mu?
  5. Kaynak metriklerini eşzamanlı kaydedin. Kırılma anında hangi kaynak doluydu? Darboğazı bu şekilde tespit edersiniz.

Referans Çizgisini Saklayın

Ölçüm sonuçlarını bir dosyaya kaydedin: tarih, sunucu, yapılandırma ve elde edilen değerler.

Bu kayıt üç durumda işinize yarar:

  • "Sunucu yavaşladı" iddiasını doğrulamak. Aynı testi tekrarlayıp karşılaştırırsınız. Referans yoksa tartışma öznel kalır.
  • Donanım değişikliğinin etkisini ölçmek. Disk yükselttiniz, gerçekten ne kadar fark etti?
  • Yapılandırma değişikliğini doğrulamak. Veritabanı ayarını değiştirdiniz, kazanç gerçek mi?

Ne Zaman Ölçmeli?

  1. Sunucu teslim alındığında — teslim doğrulaması ve referans çizgisi
  2. Üretime almadan önce — kapasite tespiti
  3. Donanım değişikliğinden sonra — kazancı doğrulama
  4. Önemli bir yapılandırma değişikliğinden sonra
  5. Performans şikayeti geldiğinde — referansla karşılaştırma
  6. Büyük bir trafik dönemi öncesinde — kapasite doğrulaması

Sonuç

Performans ölçümünde en değerli çıktı, sunucunun ne kadar hızlı olduğu değil — bir referans çizgisine sahip olmanızdır. Sunucu yeniyken yapılan ölçüm, ileride her performans tartışmasını öznellikten çıkarır. Ölçerken iş yükünüze uygun profili seçin: veritabanı çalıştıracaksanız sıralı hız değil rastgele işlem performansı ve gecikme önemlidir. Ve sentetik testlerden sonra asıl soruyu cevaplayın — gerçek uygulamanız bu sunucuda kaç kullanıcı taşıyor?

Sıkça Sorulan Sorular (SSS)

Hangi metriği ölçmeliyim?

İş yükünüze göre değişir. Veritabanı için rastgele okuma/yazma performansı ve gecikme; medya sunucusu için sıralı hız ve bant genişliği; oyun sunucusu için tek çekirdek performansı ve ağ gecikmesi. Yanlış metriği ölçmek, yanlış sonuca varmaya yol açar.

Disk testim çok yüksek sonuç verdi, doğru mu?

Test dosyası bellekteki önbelleğe sığdıysa hayır — ölçtüğünüz şey disk değil bellek hızıdır. Test dosyası boyutunu sunucunun belleğinden belirgin biçimde büyük seçin ve testi tekrarlayın.

Canlı sunucuda test yapabilir miyim?

Performans testleri kaynak tüketir ve hizmeti etkiler. Mümkünse sunucuyu üretime almadan önce test edin. Zorunluysa bakım penceresinde ve düşük yoğunluk saatinde yapın.

Referans çizgim yok, ne yapmalıyım?

Bugün oluşturun. Şu anki değerleri kaydetmek, hiç veriye sahip olmamaktan iyidir — bundan sonraki değişiklikleri en azından bu noktadan karşılaştırabilirsiniz. Ayrıca sunucu yeniyken ölçüm yapmayı bir alışkanlık hâline getirin.