Ana içeriğe geç

Stres Testi

İngilizcesi
Stress Testing
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/stress-testing

Kısaca

Stres testi, kırılma noktasını bulmak ve düzgün biçimde başarısız olup toparlandığını doğrulamak için bir sistemi bilerek beklenen iş yükünün ötesine iter.

Stres testi nedir?

Stres testi, bir sistemin nerede ve nasıl bozulduğunu öğrenmek için sistemi bilerek aşırı yükler. Amaç performans hedeflerinin karşılandığını doğrulamak değil; sınırı bulmak, hangi bileşenin önce pes ettiğini görmek ve sistemin düzgün biçimde başarısız olduğunu kontrol etmektir. Düzgün başarısız olmak, çökmek, veri kaybetmek ya da diğer servisleri de beraberinde götürmek yerine fazla istekleri net hatalarla reddetmek ve kontrollü biçimde yavaşlamak demektir.

Bir stres testi genellikle trafiği adım adım artırır; örneğin beklenen zirvenin çok ötesine geçene kadar her birkaç dakikada sanal kullanıcı sayısını ikiye katlar. Test sürerken ekip hata oranlarını, yanıt sürelerini, CPU'yu, belleği, bağlantı havuzlarını ve kuyruk uzunluklarını izler. Stres, bir diski doldurmak, belleği sınırlamak ya da bir bağımlılığı çok yavaşlatmak gibi başka kaynakları da hedefleyebilir. Sistem bozulduktan sonra toparlanmayı kontrol etmek için yük kaldırılır: kendi kendine geri gelip gelmediği ve bunun ne kadar sürdüğü incelenir.

Yeni bir sandalyeyi kırılana kadar üzerine ağırlık yığarak test eden mühendisleri düşünün. Güvenlik payını ve sandalyenin yavaş yavaş mı eğildiğini yoksa uyarı vermeden mi kırıldığını öğrenirler. Ekipler stres testlerini büyük lansmanlardan önce, kapasite planlaması için ve rate limiting, circuit breaker, backpressure ve otomatik ölçeklendirme sınırları gibi korumaların aşırı yük altında gerçekten çalıştığını doğrulamak için yapar.

Stres testi sıklıkla yük testiyle karıştırılır. Yük testi, normal yoğun bir gün gibi beklediğiniz trafikteki davranışı kontrol ederken stres testi bilerek bu düzeyin ötesine geçer. Ayrıca, dayanıklılığı test etmek için çöken bir sunucu ya da yavaş bir ağ gibi arızalar enjekte eden kaos mühendisliğinden (chaos engineering) de farklıdır; stres testi sistemi işle boğar. Ani bir trafik patlaması uygulayan spike testleri çoğu zaman bir tür stres testi olarak ele alınır.

Önemli noktalar

  • Stres testi, kırılma noktasını bulmak için bir sistemi beklenen yükün ötesine iter.
  • Hangi kaynağın ya da bileşenin önce başarısız olduğunu ortaya çıkarır.
  • İyi bir sonuç, yüksek bir sınır değil, düzgün başarısızlık ve hızlı toparlanmadır.
  • Yük testi beklenen trafiği kontrol eder; stres testi bilerek onu aşar.
  • Yalnızca size ait sistemlere, ideal olarak yalıtılmış bir ortamda stres testi uygulayın.

Örnek

Hata oranı %5'i geçene kadar trafiği ikiye katlamakjavascript
const URL = "http://localhost:8000/"; // only stress-test systems you own

const attempt = () =>
  fetch(URL, { signal: AbortSignal.timeout(2000) }).then((res) => res.ok, () => false);

// Double the concurrent users until more than 5% of requests fail
for (let users = 50; users <= 12800; users *= 2) {
  const results = await Promise.all(Array.from({ length: users }, attempt));
  const errorRate = results.filter((ok) => !ok).length / users;
  console.log(`${users} users: ${(errorRate * 100).toFixed(1)}% errors`);
  if (errorRate > 0.05) break;
}

Sık sorulan sorular

Stres testi ile yük testi arasındaki fark nedir?

Yük testi, beklediğiniz trafik altındaki performansı ölçer. Stres testi ise kırılma noktasını bulmak ve sistemin nasıl başarısız olup toparlandığını görmek için bu düzeyin ötesine geçer.

Bir sistemin düzgün biçimde başarısız olması ne demektir?

Aşırı yük altında sistemin kontrollü biçimde bozulması demektir; örneğin çökmek, veriyi bozmak ya da diğer servislerde arızaya yol açmak yerine bazı istekleri HTTP 503 gibi net bir hatayla reddetmesi.

Spike testi nedir?

Spike testi, sistemin ani artışları nasıl karşıladığını ve sonrasında ne kadar hızlı normale döndüğünü kontrol etmek için saniyeler içinde normal yükün on katı gibi ani ve büyük bir trafik patlaması uygular.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar