Programlar

# ab - Apache HTTP sunucusu başarım ölçme aracı

`ab` Apache Hiper Metin Aktarım Protokolü (HTTP) sunucunuzun başarımını ölçmek amacıyla kullanabileceğiniz bir kıyaslama aracıdır. Mevcut Apache kurulumunuzun görevini nasıl yerine getirdiği hakkında bir izlenim edinmeniz için tasarlanmıştır. Özellikle, Apache kurulumunuzun saniyede kaç isteği sunma yeteneğinde olduğunu gösterir.

httpd

# Kullanım

`ab [ -A yetkili-kullanıcı:parola ] [ -b tampon-boyu ] [ -B yerel-adres ] [ -c bağlantı-sayısı ] [ -C çerez-ismi=değer ] [ -d ] [ -e csv-dosyası ] [ -E istemci-sertifikası-dosyası ] [ -f protokol ] [ -g gnuplot-dosyası ] [ -h ] [ -H özel-başlık ] [ -i ] [ -k ] [ -l ] [ -m HTTP-yöntemi ] [ -n istek-sayısı ] [ -p POST-dosyası ] [ -P vekil-yetkilisi:parola ] [ -q ] [ -r ] [ -s zamanasimi ] [ -S ] [ -t saniye ] [ -T içerik-türü ] [ -u PUT-dosyası ] [ -v ayrıntı-düzeyi] [ -V ] [ -w ] [ -x <table>-öznitelikleri ] [ -X vekil[:port] ] [ -y <tr>-öznitelikleri ] [ -z <td>-öznitelikleri ] [ -Z şifre-kümesi ] [http[s]://]konakadı[:port]/dizin`

# Seçenekler

`-A yetkili-kullanıcı:parola`
  Sunucuya TEMEL Kimlik Doğrulamada kullanılmak üzere kanıt sağlar. Kullanıcı adı ile parola arasına sadece `:` konur ve sunucunun buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "401 kimlik doğrulaması gerekli" yanıtı beklenmeden) bağlantı üzerinden base64 kodlu olarak sunucuya gönderilir.
`-b tampon-boyu`
  TCP gönderme/alma tamponlarının bayt cinsinden uzunluğu.
`-B yerel-adres`
  Uzak bağlantılar yaparken dinlenecek adres.
`-c bağlantı-sayısı`
  Aynı anda işleme sokulacak bağlantı sayısı. Aynı anda bir bağlantı öntanımlı değerdir.
`-C çerez-ismi=değer`
  İsteğe bir `Cookie:` satırı ekler. Argüman olarak genellikle bir `isim=değer` çifti kullanılır. Bu çiftler birden fazla olabilir.
`-d`
  "percentage served within XX [ms] table" iletisi gösterilmez. (Geriye uyumluluk için vardır).
`-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.
`-E istemci-sertifikası-dosyası`
  Bir SSL sitesine bağlanırken, sunucu ile kimlik doğrulaması için PEM biçeminde sağlanan sertifika kullanılır. Dosyanın sırayla istemci sertifikasını, ara sertifikaları ve özel anahtarı içermesi beklenir. 2.4.36 ve sonrasında kullanılabilir.
`-f protokol`
  SSL/TLS protokolü belirtilir (SSL2, SSL3, TLS1, TLS1.1, TLS1.2 veya ALL). TLS1.1 ve TLS1.2 desteği 2.4.4 ve sonraki sürümler içindir.
`-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.
`-h`
  Kullanım bilgisi gösterir.
`-H özel-başlık`
  İsteğe fazladan başlık ekler. özel-başlık, aralarında iki nokta imi bulunan bir isim-değer çifti olarak belirtilir. Örnek: `"Accept-Encoding: zip/zop;8bit"`
`-i`
  `GET` istekleri yerine `HEAD` istekleri yapılır.
`-k`
  HTTP KeepAlive (kalıcı bağlantı) özelliğini etkinleştirir, yani tek bir oturum içinde çok sayıda isteğe hizmet sunulabilir. Özellik öntanımlı olarak kapalıdır.
`-l`
  Yanıtarın uzunluğu sabit değilse hataları raporlamaz. Özdevinimli sayfalarda kullanışlı olabilir. 2.4.7 ve sonraki sürümler içindir.
`-m HTTP-yöntemi`
  İstekler için özel HTTP yöntemi, belirtilir. 2.4.10 ve sonraki sürümler içindir.
`-n istek-sayısı`
  Kıyaslama oturumu sırasında sunucuya uygulanacak istek sayısı. Öntanımlı olarak hiçbir başarım ölçütü sağlamayan tek bir istek yapılır.
`-p POST-dosyası`
  POST isteği ile ilgili verileri içeren dosya. Ayrıca `-T` seçeneğini de belirtmeyi unutmayın..
`-P vekil-yetkilisi:parola`
  Vekil sunucuya TEMEL Kimlik Doğrulamasında kullanılacak kanıtları sağlar. Kullanıcı adı ile parola arasına sadece `:` konur ve vekilin buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "407 vekilde kimlik doğrulaması gerekiyor" yanıtı beklenmeden) bağlantı üzerinden base64 kodlu olarak sunucuya gönderilir.
`-q`
  İstek sayısı 150'den fazla olduğunda, `ab` her 100 veya %10 istekte bir, standart hataya bir işlenen istek sayacı çıktılar. `-q` seçeneği bu çıktının üretilmemesini sağlar.
`-r`
  Soket hata alsa bile program çıkmaz.
`-s zamanasimi`
  Soket zaman aşımına uğramadan önce beklenecek azami saniye sayısı. 30 saniye öntanımlı süredir. 2.4.4 ve sonraki sürümler içindir.
`-S`
  Ortalama ve ortanca değerler arasında bir veya iki standart sapmadan fazlası varsa ne ortalama değer ne standart sapma değeri ne de uyarı/hata iletileri gösterilir. Öntanımlı olarak, asgari/ortalama/azami değerler gösterilir. (Geriye uyumluluk).
`-t saniye`
  Ölçümleme işleminin ne kadar süreyle uygulanacağı belirtilir. Dahili olarak `-n 50000` seçeneği uygulanır. Bunu belli bir süreye göre kıyaslama yapmak amacıyla kullanabilirsiniz. Öntanımlı 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. Örnek: `application/x-www-form-urlencoded`. Öntanımlı değer: `text/plain`.
`-v ayrıntı-düzeyi`
  Çıktının ayrıntı düzeyi belirtilir. `4` ve üstü ile başlıklar hakkında bilgi, `3` ve üstü ile yanıt kodları (404, 200, vb.), `2` ve üstü ile ise uyarı ve bilgi iletileri gösterilir.
`-u PUT-dosyası`
  PUT verisini içeren dosya. Ayrıca, `-T` seçeneğini belirtmeyi de unutmayın.
`-V`
  Sürüm bilgilerini gösterir ve çıkar.
`-w`
  Sonuçları HTML tabloları olarak basar. Öntanımlı tablo, beyaz artalanlı ve iki sütunludur.
`-x <table>-öznitelikleri`
  `<table>` etiketinde kullanılacak öznitelikler belirtilir. Belirtilen öznitelikler etiket içine `<table buraya >` biçeminde yerleştirilir.
`-X vekil[:port]`
  İstekler için bir vekil sunucu kullanılır.
`-y <tr>-öznitelikleri`
  `<tr>` etiketinde kullanılacak öznitelikler belirtilir.
`-z <td>-öznitelikleri`
  `<td>` etiketinde kullanılacak öznitelikler belirtilir.
`-Z şifre-kümesi`
  SSL/TLS şifre kümesi belirtilir (`openssl`(1) şifrelerine bakınız).

# Çıktı

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

Server Software
  İlk başarılı yanıtın, varsa, server HTTP başlığında döndürülen değer. Bu başlıktaki başlangıçtan 32 ondalık değerli karaktere (genellikle boşluk veya CR/LF karakteri) kadar tüm karakterleri içerir.
Server Hostname
  Komut satırında belirtilen DNS veya IP adresi.
Server Port
  `ab`'nin bağlandığı port. Komut satırında port belirtilmemişse, öntanımlı olarak http için 80, https için 443'tür.
SSL/TLS Protocol
  İstemci le sunucu arasında uzlaşılmış protokol değerleri. Bu sadece SSL kullanılıyorsa çıktılanır.
Document Path
  Komut satırı dizgesinden çözümlenen isteğin URI'si.
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ılanmaz.
Keep-Alive requests
  Keep-Alive 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 gövde gönderilmiyorsa bu alan çıktılanmaz.
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 / biten` formülüyle hesaplanırken ikincisi için `süre * 1000 / biten` formülü kullanılır.
Transfer rate
  `okunantoplam / 1024 / süre` formülüyle hesaplanan aktarım hızı.

# Börtü böcek

Duruk bildirimli sabit uzunlukta çeşitli tamponlar vardır. Sunucudan gelen yanıt başlıkları ve diğer harici girdiler, komut satırı argümanları ile birlikte basitçe çözümlenir, bu size can sıkıcı gelebilir.

HTTP/1.x protokolünü tamamen gerçeklemez; sadece yanıtların 'belli başlı' bazı biçimlerini kabul eder. Aksi takdirde, `strstr`(3) işlevinin yoğun kullanımı nedeniyle sunucu yerine `ab`'nin başarımını ölçerdiniz.