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.
-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
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.
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ı.
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/