Apache Wiki

Apache Benchmark Kullanımı

Apache Benchmark, geliştiriciler ve sistem yöneticileri için harika bir araçtır.

Bu aracı kullanarak, hazırladığınız bir web projesinin barınmakta olduğu web sunucu üzerinde ne kadar performansla çalıştığı, web sitenin yüksek trafik hacmine ulaştığında isteklerin ne kadar sürede yanıt aldığını, LiteSpeed, Nginx gibi web servislerinin yük dengesini ne kadar etkilediğini analiz edebilirsiniz.

Google PageSpeed Insights, GTmetrix gibi üçüncü parti servisler üzerinden sunucu yanıt süresi ile ilgili alacağınız istatistiksel bilgiyi Apache Benchmark ile de alabilirsiniz. Genellikle üçüncü parti servisler, web sitesindeki tüm dosyaların yüklenmesi tamamlandıktan sonra toplam süreyi geliştiriciye sunar. Örneğin, websozluk.net web sitesini ziyaret ettiğinizde aslında sunucu 150 ms içerisinde yanıt verirken, üçüncü parti bir servis üzerinde bu yanıt süresinin 2 sn olduğu belirtilmekte. Bu çok doğru bir istatistik değil ve problemin çözümlenmesi konusunda fayda sağlamamaktadır.

Apache Benchmark‘ı tetiklemek için aşağıdaki gibi komut çalıştırmamız gerekmektedir.

ab -n 100 -c 10 "https://www.websozluk.net/"

Apache Benchmark’ı kullanırken dikkat edilmesi gereken noktalardan birisi, 301 veya 302 yönlendirme yapılan bir sayfaya istek göndermemektir. Örneğin, web siteniz https://www.websozluk.net/ adresinde yayınlanıyorsa, siz https://websozluk.net/ şeklinde istek gönderirseniz Apache Benchmark aracı çalışmayacaktır.

Parametrelerin açıklaması hakkında bilgi verelim.

-n : Toplam istek sayısı
-c : Anlık istek sayısı
-t : Tüm istekleri karşılaması için beklenen maksimum süre (saniye cinsinden)
-s : Her istek için zaman aşımı süresi (saniye cinsinden)

Örnek bir Apache Benchmark sonucunu paylaşmak isterim.

root@vps:~# ab -n 100 -c 10 "https://www.websozluk.net/"
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.websozluk.net (be patient).....done


Server Software: nginx/1.4.6
Server Hostname: www.websozluk.net
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256

Document Path: /
Document Length: 69047 bytes

Concurrency Level: 10
Time taken for tests: 2.340 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 6946406 bytes
HTML transferred: 6904700 bytes
Requests per second: 42.74 [#/sec] (mean)
Time per request: 233.969 [ms] (mean)
Time per request: 23.397 [ms] (mean, across all concurrent requests)
Transfer rate: 2899.36 [Kbytes/sec] received

Connection Times (ms)
 min mean[+/-sd] median max
Connect: 5 12 10.8 8 45
Processing: 28 197 437.0 56 2295
Waiting: 26 190 419.3 54 2197
Total: 33 210 446.3 66 2339

Percentage of the requests served within a certain time (ms)
 50% 66
 66% 77
 75% 85
 80% 90
 90% 934
 95% 1536
 98% 1910
 99% 2339
 100% 2339 (longest request)

Time taken for tests tüm isteklerin karşılandığı toplam süreyi, Time per request her isteğin ne kadar sürede yanıtlandığını ifade eder.

Eğer web sunucunuz üzerinde Apache Benchmark yüklü değilse aşağıdaki komutu çalıştırarak yükleyebilirsiniz.

Ubuntu:

apt-get install apache2-utils

CentOS:

yum install httpd-tools

Yazar Hakkında

Gürkan Biçer

Gürkan Biçer

PHP Developer, Network & System Administrator

Yorum Yazın