Son Yazılar
Anasayfa > Genel > ApacheBench ile HTTP Server Benchmark Testi

ApacheBench ile HTTP Server Benchmark Testi

Apache Server’ın içinde gelen bu tool ile herhangi bir web sitenin HTTP Benchmark istatiğini çıkarabiliyoruz.

Buna göre sunucu yanıt süresi ve site açılışı gibi bilgilere göre iyileştirmeler veya düzenli kontroller sağlayabilirsiniz.

Nasıl Yaparız?

Apache,

Eğer Apache Server kuruluysa

/apache/bin

klasöründe ab.exe komutunu ve parametrelerini çalıştırabilirsiniz.

Yoksa Apache Server resmi sitesinden indirebilirsiniz. Linux ve Windows kurulum dosyaları mevcut. Apache’yi kurmadan da komut satırında ab.exe‘yi çağırarak da kullanabilirsiniz.

Not: Bazı parametreler Apache 2.4.x  (ApacheBench 2.3) ve sonraki sürümlerde çalışmaktadır.

AB Parametreler

-b buffer-size
TCP gönderme/alma buffer bayt cinsinden uzunluğu.

örn: -b 10000

-c bağlantı-sayısı
Aynı anda işleme sokulacak bağlantı sayısı. Varsayılan olarak 1 bağlantı tanımlıdır.

örn: -c 10

-d
“percentage served within XX [ms] table” iletisi gösterilmez. (Geriye uyumluluk için vardır).

örn: -d

-e csv-dosyası
Sunulan isteğin birim zamanda (milisaniye) ne kadarının (yüzde cinsinden) sunulduğunu gösteren virgül ayraçlı değerler (CSV) dosyası. Sonuçlar ‘bobin haline’ getirilmiş olduğundan doğal olarak ‘gnuplot’ dosyasından daha yararlıdır.

örn: -e csv-dosyasi

-f Protokol
SSL/TLS protokolü belirtilir (SSL2, SSL3, TLS1 veya ALL “hepsi”).

örn: -f ssl2

-g Gnuplot Dosyası
Ölçülen değerler bir ‘gnuplot’ veya TSV (sekme ayraçlı değerler) dosyasına yazılır. Bu dosya, Gnuplot, IDL, Mathematica, Igor hatta Excel tarafından veri dosyası olarak kabul edilir. Veri sütunlarının başlıkları dosyanın ilk satırında bulunur.

örn: ab -n 100 -c 10 -g gnupdosya.plt http://www.facebook.com/

GnupLot (grafiksel gösterim) indirme adresine buradan ulaşabilirsiniz.

gnuplot

-i
GET istekleri yerine HEAD istekleri yapılır.

örn: ab -n 100 -c 10 -i http://www.yahoo.com/

-k
HTTP KeepAlive (kalıcı bağlantı) özelliğini etkinleştirir, yani tek bir oturum içinde çok sayıda isteğe hizmet sunulabilir. Varsayılan olarak kapalıdır.

örn: ab -n 100 -c 10 -k http://www.yahoo.com/

-n istek-sayısı
Uygulama sırasında sunucuya gerçekleştirilecek istek sayısı. Öntanımlı olarak sadece bir istek yapılır fakat bu istek performans değerlendirmesi için kullanılmaz.

örn: ab -n 100 -c 10 -i http://www.yahoo.com/

-p POST-dosyası
POST isteği ile ilgili verileri içeren dosya. Ayrıca -T seçeneğini de belirtmeyi unutmayın..

örn: ab -n 100 -c 10 -p post-veri.txt http://www.yahoo.com/

-q
İstek sayısı 150’den fazla olduğunda, ab her 100 veya %10 istekte bir, standart hata loguna 1 ekler. -q seçeneği bu çıktının üretilmemesini sağlar.

-s
Soket zaman aşımına uğramadan önce beklenecek azami süre (saniye). Varsayılan olarak süre 30 saniyedir. 2.4.4 ve sonraki sürümler içindir.

-t saniye
Performans test işleminin ne kadar süreyle uygulanacağı belirtilir. Genelde  -n 50000 seçeneği uygulanır (-t uygulanmazsa). Bunu belli bir süreye göre kıyaslama yapmak amacıyla kullanabilirsiniz. Varsayılan olarak bir süre kısıtlaması yoktur.

-T içerik-türü
POST/PUT verisi için kullanılacak içerik türü belirtilir. Varsayılan değer: text/plain.

örn: ab -n 100 -c 10 -T application/x-www-form-urlencoded http://www.facebook.com/

-V
Sürüm bilgilerini gösterir.

AB Html Çıktı Alma

-w
Sonuçları HTML tabloları olarak basar. Öntanımlı tablo, beyaz artalanlı ve iki sütunludur. Diğer parametrelerle kullanılabilir.

örn: ab -n 100 -c 10 -w http://www.facebook.com/

Komut satırında ki çıktıyı kopyaladıktan sonra not defterine yapıştırıp *.html formatında kayıt edip açabilirsiniz.

Örnek html çıktı örneği

html-export2

Aşağıda ki parametreler ile özelleştirebilirsiniz.

-y <tr>-öznitelikleri
<tr> etiketinde kullanılacak öznitelikler belirtilir.

-z <td>-öznitelikleri
<td> etiketinde kullanılacak öznitelikler belirtilir.

html-export

AB Çıktı Bilgileri

Aşağıda AB tarafından döndürülen değerler açıklanmıştır:

Server Software
İlk başarılı yanıtta HTTP başlığında dönen değer.

IIS, Apache gibi
Server Hostname
DNS veya IP adresi.

192.168.2.175 gibi

Server Port
AB’nin bağlandığı port. Komut satırında port belirtilmemişse varsayılan değer kullanılır.

http için 80, https için 443’tür.

SSL/TLS Protocol

İstemci le sunucu arasında uzlaşılmış protokol değerleri. Bu çıktı bilgisi sadece SSL kullanılıyorsa gösterilir.

Document Path
Komut satırında belirttiğiniz dizin URL’si.

http://youtube.com/channels gibi

Document Length
Başarıyla döndürülen ilk belgenin bayt cinsinden uzunluğu. Eğer belge uzunluğu sınama sırasında değişirse yanıt bir hata içerecektir.

Concurrency Level
Sınama sırasında kullanılan eşzamanlı istemcilerin sayısı.

Time taken for tests
İlk soket bağlantısının alındığı andan son yanıtın alındığı ana kadar geçen süre.

Complete requests
Alınan başarılı yanıtların sayısı.

Failed requests
Başarısızlık olarak addedilen isteklerin sayısı. Sayı sıfırdan büyükse, diğer satırda, bağlanma, okuma, yanlış içerik uzunluğu, istisnalar gibi sebeplerle başarısız olmuş istekler gösterilir.

Write errors
Başarısız yazma hatalarının (kırık boru) sayısı.

Non-2xx responses
200 serisi yanıt kodları ile açıklanamayan yanıtların sayısı. Tüm yanıtlar 200 olursa bu alan çıktıya yansımaz.

Keep-Alive requests
Keep-Alive (kalıcı bağlantı) isteklerinde sonuçlanan bağlantı sayısı.

ab-sonuc

Total body sent
Sınamanın parçası olarak veri gönderimi yapılandırılmışsa, bu sınama sırasında gönderilen toplam bayt sayısıdır. Sınama sırasında body gönderilmiyorsa bu alan çıktıya yansımaz.tr

Total transferred
Sunucudan alınan toplam bayt sayısı. Bu sayı aslında hattan gönderilen bayt sayısıdır.

HTML transferred
Sunucudan alınan belge baytlarının sayısı. Bu sayı HTTP başlıklarının bayt sayısını içermez.

Requests per second
Saniyedeki istek sayısı. İstek sayısının toplam süreye oranıdır.

Time per request
İstek başına harcanan süre. İlk değer ” eşzamanlılık * süre * 1000 / son ” formülüyle hesaplanırken ikincisi için ” süre * 1000 / son ” formülü kullanılır.

Transfer rate
” okunantoplam / 1024 / ” süre formülüyle hesaplanan aktarım hızı.

Örnek Parametreler

Aşağıda ki parametreler ile sunucuya 100 istek gönderiliyor ve aynı anda 10 bağlantı sağlanıyor. Daha sonra bu çıktıyı Gnuplot dosyası olarak apache/bin dizinine kopyalıyor. Gnuplot programı ile açabilirsiniz.

örn: ab -n 100 -c 10 -g gnupdosya.plt http://www.facebook.com/

Aşağıda ki parametreler ile sunucuya 100 istek gönderiliyor ve aynı anda 10 bağlantı sağlanıyor. Daha sonra bu çıktıyı html dosyası olarak komut satırında gösteriyor. Kopyalayıp html olarak açabilirsiniz.

örn: ab -n 100 -c 10 -w http://www.facebook.com/

Aşağıda ki parametreler ile sunucuya 100 istek gönderiliyor ve aynı anda 10 bağlantı sağlanıyor. Daha sonra html form şifreleme yaparak analiz ediyor

örn: ab -n 100 -c 10 -T application/x-www-form-urlencoded http://www.facebook.com/

Aşağıda ki parametreler ile AB versiyonunu öğrenirsiniz.

ab -V

This is ApacheBench, Version 2.3 <$Revision: 1663405 $>

Aşağıda ki parametreler ile sunucuya 100 istek gönderiliyor ve aynı anda 10 bağlantı sağlanıyor. Daha sonra CSV dosyası olarak apache/bin dizinine kopyalıyor. CSV açan herhangi bir program ile açabilirsiniz.

ab -n 100 -c 10 -e dsd http://www.sistemduragi.com/

 

Hakkında Uğur CIVAK

Eğitimimi Plato MYO & Bilge Adam tarafından İnternet ve Ağ Teknolojileriyle tamamladım. Bilge Adam, İsimtescil gibi öncü firmalarda kariyerime başlangıç yaptım. Uzman olarak MaestroPanel firmasında Microsoft ve Linux Server, Exchange Server, Sanallaştırma, Microsoft Azure, Powershell, Nano Server, Python ve Yeni Teknoloji araştırmaları yapıyorum.

Ayrıca

Exchange Server 2013 Protokol Log Dizini

Protokol Log’ları Exchange Server’in mail gönderim işleminin bir parçası olarak sunucular arası SMTP haberleşmelerini kaydeder. ...

Ubuntu 15.04 üzerine OpenStack Kilo Kurulumu

Neler Yapacağız? Ubuntu 15.04 Kurulum Ubuntu Vmware Tools Kurulum (Opsiyonel) OpenStack Kurulum https://git.openstack.org/cgit/openstack-dev/devstack/ OpenStack Nedir? ...