<

Yük Testi Yapmadan Kampanyaya Çıkmayın

Her yıl aynı film: Kasım kampanyası başlar, reklam bütçesi akar, site ilk yarım saatte çöker. Ertesi gün toplantıda "sunucuyu büyütelim" denir. Oysa çöken çoğu sistemde sorun sunucu boyutu değil, hiç test edilmemiş darboğazlardır. 16 yıldır e-ticaret ve kurumsal sistemler geliştiren bir ekip olarak kuralımız net: trafiği tahmin etme, simüle et. Bu yazıda gerçekçi bir yük testinin nasıl kurgulanacağını, testlerden çıkan tipik kazanımları ve test sonrasında kurulması gereken izleme düzenini anlatıyoruz.

Yük testi neyi gösterir?

Doğru kurgulanmış bir yük testi size üç kritik cevabı verir: sistemin kırılma noktası nerede, ilk hangi bileşen tıkanıyor ve kullanıcı deneyimi hangi trafikte bozulmaya başlıyor. Bizim sahada en sık gördüğümüz darboğazlar sunucu CPU'su değil; bağlantı havuzu dolan veritabanı, indekssiz bir sorgu, oturum verisini diske yazan bir yapılandırma ya da harici bir API'nin timeout'u.

Pratik bir test kurgusu

Araç olarak k6 veya JMeter işinizi fazlasıyla görür. Önemli olan senaryo gerçekçiliği:

  • Gerçek kullanıcı akışını taklit edin: anasayfa → kategori → ürün → sepet → ödeme. Sadece anasayfaya yük bindirmek yanıltıcı sonuç verir.
  • Kademeli artırın: 100, 500, 1000, 2000 eşzamanlı kullanıcı. Kırılmanın hangi kademede ve hangi bileşende başladığını not edin.
  • Sadece ortalamaya bakmayın: p95 ve p99 yanıt süreleri asıl hikayeyi anlatır. Ortalama 300ms iken p99'un 8 saniye olması, her 100 kullanıcıdan birinin siteyi terk etmesi demektir.
  • Testi üretim benzeri ortamda yapın: yarım boyutlu staging'de alınan sonuç, üretimde ikiyle çarpılmaz; darboğazlar doğrusal ölçeklenmez.

Testten çıkan tipik kazanımlar

Geçtiğimiz yıllarda yaptığımız yük testlerinden birkaç gerçek sonuç: bir projede sepet sorgusuna eklenen tek bir bileşik indeks, sistemin taşıyabildiği eşzamanlı kullanıcıyı üç katına çıkardı. Bir başkasında ödeme sağlayıcısına giden isteklere konulan devre kesici (circuit breaker), harici servis yavaşladığında tüm sitenin kilitlenmesini önledi. Redis'e taşınan oturum yönetimi, veritabanı yükünü yüzde kırk azalttı. Hiçbiri donanım harcaması gerektirmedi.

Test bitti, iş bitmedi: izleme katmanı

Yük testinin ikiz kardeşi üretim izlemesidir. Test size laboratuvar sonucunu verir; gerçek kampanya günü ise canlı izleme olmadan kör uçuştur. Asgari donanım şu: sunucu ve veritabanı metriklerinin (CPU, bellek, bağlantı sayısı, yavaş sorgu adedi) tek panelde izlenmesi, hata oranı ve yanıt süresi için eşik bazlı uyarılar, bir de kritik akışları (giriş, sepet, ödeme) birkaç dakikada bir dışarıdan deneyen sentetik kontroller. Böylece sorun, sosyal medyada "siteniz çöktü" mesajlarından değil, kendi uyarı sisteminizden öğrenilir; aradaki dakikalar kampanya gününde ciddi paraya karşılık gelir. Test raporundaki kırılma eşiklerini uyarı eşiği olarak izleme sistemine işlemek, iki çalışmayı birbirine bağlayan en değerli adımdır.

Ne zaman test etmeli?

Kampanyadan bir hafta önce değil. Doğru zamanlama: büyük kampanyalardan en az bir ay önce ilk tur, düzeltmelerden sonra doğrulama turu. Rich Design olarak 500'ün üzerinde projeden gelen tecrübeyle yük testi kurgusu, darboğaz analizi ve iyileştirme çalışmalarını uçtan uca yürütüyoruz. Kritik bir tarih yaklaşıyorsa şimdiden konuşalım; çökmüş bir kampanya gününün maliyeti, testin maliyetinin yüzlerce katıdır.

📅 Yayınlanma:  ·  Yakup Zengin