2 min read

Apache Bench (AB) ile Load Test (Yük Testi)

Geliştirdiğimiz web sitelerinin kod kalitesini ölçmek için aynı zamanda structure kalitemizi ölçmek için yük/stres testleri (load test) araçları kullanıyoruz. Bu yazımızda bu testler için çok sık ve hızlıca kullanılan bir araçtan bahsedeceğiz, Apache Bench (ab).

Apache Bench Nedir?

Apache Bench, HTTP sunucunuzun yük kaldırma kapasitesini ölçmek için Apache grubu tarafından geliştirilen bir yardımcı tooldur. İlgili sayfa için buraya tıklayabilirsiniz.

Neden Yük Testi (Load Test) Yapmalıyız?

Bu sorunun cevabını aslında yazının girişinde verdik fakat biraz daha açacak olursak,

  • Application sunucunuzun structure kalitesini ölçmek
  • Applicationımızın kalitesini ölçmek
  • Aşırı trafik altında davranışı ölçmek
  • Saldırı altında davranışı ölçmek
  • Performans metrikleri çıkarmak

İçin yük testleri yapmalıyız.

Apache Bench (ab) Nasıl Kurulur?

Mac OS işletim sisteminde kurulu gelmektedir.

Debian/Ubuntu Kurulumu
sudo apt-get install apache2-utils
Centos/Fedora Kurulumu
sudo yum install httpd-tools

Apache Bench (ab) ile Nasıl Yük Testi Yapılır?

Kurulumumuzu yaptık artık çalışma ortamımızda yada sunucumuzda bu testi gerçekleştirebiliriz. Başlamadan önce bahsetmek istediğim bir diğer nokta ise, makinenizin ve network’ünüz ne kadar iyiyse testlerinizde o kadar yoğun stres yaşatabilirsiniz. Yani kişisel bir bilgisayar ile yaptığınız test ile datacenter da yer alan sunucunuzun yaratacağı stres aynı olmayacaktır 🙂

Hemen bir basit kullanım ile ilk testimizi gerçekleştirelim!

ab -k -n 100 -c 10 https://enesgur.com.tr/

Hemen kullandığımız parametrelere geçelim;

-k (Keep-Alive): HTTP protokolünde yer alan Keep-Alive bağlantı türünü aktif eder. Tarayıcılar bu bağlantıyı varsayılan olarak yaptığı için aktif etmemiz daha gerçekçi olacaktır.

-n: Gönderilecek istek (request) sayısını belirtir. Biz örnekte 100 adet istek gönderilmesini istedik toplamda.

-c (Concurrency): Eş zamanlı olarak kaç adet isteğin gönderileceğini bu parametre ile belirliyoruz. Biz örneğimizde 10 adet paralel istek gönderilmesini istedik.

Çıktımız;

Ekran görüntüsünde yer aldığı gibi yaptığımız stres testine ait sonuçlar yer almakta. Apache Bench’e ait daha fazla argümana ve uygulamaya ait daha fazla bilgi almak için https://httpd.apache.org/docs/2.4/en/programs/ab.html adresini ziyaret edebilirsiniz.