Web Yük Testi: Sitenizin Kırılma Noktasını Kampanyadan Önce Bulmak

Web uygulaması yük testi türleri, gerçekçi senaryo kurma, ölçülecek metrikler ve sonuçları yorumlama rehberi. Web Yük Testi: Sitenizin Kırılma Noktasını…

Web Yük Testi: Sitenizin Kırılma Noktasını Kampanyadan Önce Bulmak
İçindekiler
  1. Test Türleri
  2. Gerçekçi Senaryo Kurmak
  3. Testi Nereden Çalıştırmalı?
  4. Neyi Ölçmeli?
  5. Sonucu Yorumlamak
  6. Bulunan Sorunları Çözmek
  7. Testi Tekrarlamak
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. Neyi test etmeliyim?
  11. Testi nereden çalıştırmalıyım?
  12. Hangi metriğe bakmalıyım?
  13. Test genellikle neyi ortaya çıkarır?

Web Yük Testi: Sitenizin Kırılma Noktasını Kampanyadan Önce Bulmak

"Sitemiz kaç kişiyi kaldırır?" sorusuna verilecek tek dürüst cevap "denemedik" ise, bunu bir kampanya gününde öğrenmek en pahalı yoldur.

Bu yazı, web uygulamanızın yük testini ele alıyor.

Test Türleri

Farklı sorulara farklı testler cevap verir:

Test Cevapladığı soru
Yük testi Beklenen trafiği kaldırıyor mu?
Stres testi Kırılma noktası nerede?
Ani yük testi Sıçramaya nasıl tepki veriyor?
Dayanıklılık testi Saatlerce ayakta kalıyor mu?

Dördüncü satır en çok atlanan ve en değerli olanlardan biridir: kısa testlerde görünmeyen bellek sızıntıları, ancak saatlerce süren bir yük altında ortaya çıkar — sunucu on dakika mükemmel çalışıp altıncı saatte çökebilir.

Üçüncü satır ise kampanya senaryosunun ta kendisidir. Trafik kademeli değil, duyuru anında aniden gelir.

Gerçekçi Senaryo Kurmak

Test sonucunun değeri, senaryonun gerçekçiliğine bağlıdır:

  • Sadece ana sayfayı test etmeyin.
  • Gerçek kullanıcı yolculuğunu taklit edin.
  • Giriş yapmış kullanıcıyı dahil edin.
  • Yazma işlemlerini unutmayın.
  • Düşünme süresi ekleyin.

Birinci madde en yaygın hatadır ve yanıltıcı bir güven verir: ana sayfa genellikle önbelleklenir ve saniyede binlerce isteği rahatça karşılar, oysa sepete ekleme veya arama gibi işlemler veritabanına gider ve asıl sınır oradadır.

Üçüncü madde de önbellek etkisini kırar. Giriş yapmış kullanıcılar genellikle önbelleklenmemiş sayfalar görür.

Beşinci madde ise gerçek kullanıcı davranışını taklit eder. İnsanlar sayfaları arka arkaya milisaniyeler içinde istemez; okurlar, düşünürler, tıklarlar.

Düşünme süresi olmayan bir test, gerçekte olduğundan çok daha ağır bir yük üretir ve gereksiz panik yaratır.

Testi Nereden Çalıştırmalı?

  1. Aynı sunucudan: Yanıltıcı.
  2. Aynı ağdan: Kısmen faydalı.
  3. Dışarıdan: Gerçekçi.

Birinci seçenek sık yapılan ama sonucu bozan bir tercihtir: test aracını hedef sunucuda çalıştırmak, o aracın kendisi kaynak tükettiği için ölçümü doğrudan bozar ve ağ katmanını hiç test etmez.

Üçüncü seçenek gerçek koşulları yansıtır ama test makinesinin de yeterli kapasitede olması gerekir.

Yaygın bir hata, testin sunucuyu değil test makinesini doyurmasıdır. Bu durumda ölçtüğünüz şey kendi ağ bağlantınızın sınırıdır.

Neyi Ölçmeli?

Metrik Neden
Yanıt süresi yüzdelikleri Ortalama yanıltır
Hata oranı Yük altında artıyor mu?
Saniyedeki istek sayısı Gerçek kapasite
Sunucu kaynakları Hangi kaynak önce doldu
Veritabanı metrikleri Genellikle asıl darboğaz

Birinci satır ölçümün en önemli detayıdır: ortalama yanıt süresi iyi görünürken kullanıcıların yüzde beşi on saniye bekliyor olabilir — ortalama bu gerçeği tamamen gizler.

Bu nedenle yüzde doksan beş ve yüzde doksan dokuz dilimlerine bakmak gerekir. Gerçek kullanıcı deneyimi oralarda yaşanır.

Beşinci satır ise çoğu web uygulamasında darboğazın nerede olduğunu söyler. Web sunucusu nadiren sınırdır; veritabanı genellikle sınırdır.

Sonucu Yorumlamak

Sayılar tek başına anlam taşımaz:

  • Beklenen zirveyle karşılaştırın.
  • Marj bırakın.
  • Kırılma anında ne olduğuna bakın.
  • Toparlanmayı gözlemleyin.

Üçüncü madde tasarım kalitesini gösterir: iyi tasarlanmış bir sistem sınıra ulaştığında yavaşlar; kötü tasarlanmış bir sistem ise tamamen çöker ve toparlanamaz.

Yavaşlayarak hizmet vermeye devam etmek, tamamen kapanmaktan her zaman iyidir.

Dördüncü madde ise yükten sonrasını ölçer. Yük kalktığında dakikalar içinde normale dönmeyen bir sistem, gerçek bir trafik dalgasından sonra uzun süre sorunlu kalır.

Bulunan Sorunları Çözmek

Test genellikle aynı sorunları ortaya çıkarır:

  1. Eksik veritabanı dizini. En sık bulgu.
  2. Önbelleklenmeyen ağır sorgu.
  3. Yetersiz bağlantı havuzu.
  4. Düşük işçi süreç sayısı.
  5. Dış servis çağrısının zaman aşımı olmaması.

Beşinci madde en sinsi olanıdır: yavaşlayan bir dış servis, zaman aşımı tanımlanmamışsa tüm işçi süreçlerinizi bekletir ve siteniz o servis yüzünden tamamen durur.

Bu, kendi altyapınızda hiçbir sorun olmadan yaşanan kesintilerin klasik nedenidir.

Birinci madde ise en yüksek getiriyi veren düzeltmedir. Tek bir dizin eklemek, kapasiteyi kat kat artırabilir.

Testi Tekrarlamak

Ne zaman Neden
Büyük kampanya öncesi Hazırlık doğrulaması
Önemli değişiklik sonrası Gerileme kontrolü
Altyapı değişikliğinde Yeni sınırları öğrenmek
Dönemsel olarak Yavaş bozulmayı yakalamak

Dördüncü satır gözden kaçan bir gerçeği yakalar: veri büyüdükçe aynı kod yavaşlar — bir yıl önce hızlı çalışan bir sorgu, tablo on kat büyüdüğünde darboğaz hâline gelir.

Bu bozulma kademelidir ve kimse fark etmez, ta ki bir yük anında ortaya çıkana kadar.

Test sonuçlarına göre kaynak yükseltmeniz gerekebilir; sanal sunucu paketi yükseltmeleri panel üzerinden kısa kesintiyle uygulanabilir.

Sonuç

Yük testinde en yaygın hata sadece ana sayfayı test etmektir: ana sayfa genellikle önbelleklenir ve yanıltıcı bir güven verir, oysa asıl sınır veritabanına giden işlemlerdedir. Ölçerken ortalamaya değil yüzdeliklere bakın — ortalama iyi görünürken kullanıcıların yüzde beşi on saniye bekliyor olabilir. Kırılma anındaki davranış tasarım kalitesini gösterir: iyi bir sistem yavaşlar, kötü bir sistem çöker ve toparlanamaz. Ve testi dönemsel tekrarlayın; veri büyüdükçe aynı kod yavaşlar.

Sıkça Sorulan Sorular (SSS)

Neyi test etmeliyim?

Gerçek kullanıcı yolculuğunu — sadece ana sayfayı değil. Ana sayfa genellikle önbelleklenir ve saniyede binlerce isteği karşılar; asıl sınır sepete ekleme veya arama gibi veritabanına giden işlemlerdedir. Giriş yapmış kullanıcıları ve yazma işlemlerini de dahil edin.

Testi nereden çalıştırmalıyım?

Dışarıdan, ayrı bir makineden. Test aracını hedef sunucuda çalıştırmak, aracın kendisi kaynak tükettiği için ölçümü bozar ve ağ katmanını hiç test etmez. Test makinesinin de yeterli kapasitede olmasına dikkat edin, yoksa ölçtüğünüz şey kendi bağlantınızın sınırı olur.

Hangi metriğe bakmalıyım?

Yanıt süresi yüzdeliklerine — özellikle yüzde 95 ve 99 dilimlerine. Ortalama yanıt süresi iyi görünürken kullanıcıların yüzde beşi on saniye bekliyor olabilir; ortalama bu gerçeği gizler. Ayrıca hata oranını ve hangi sunucu kaynağının önce dolduğunu izleyin.

Test genellikle neyi ortaya çıkarır?

En sık bulgu eksik veritabanı dizinidir ve tek bir dizin kapasiteyi kat kat artırabilir. En sinsi bulgu ise zaman aşımı tanımlanmamış dış servis çağrılarıdır: yavaşlayan bir dış servis tüm işçi süreçlerinizi bekletir ve siteniz kendi altyapınızda hiçbir sorun yokken durur.