Ab

From ICO wiki
Revision as of 18:06, 24 November 2011 by Taliiv (talk | contribs)
Jump to navigationJump to search

Mis on Ab?

Ab on Apache HTTP serveri reeperporgramm (benchmarking tool). See on loodud sellejaoks, et anda ülevaade hetkelisest Apache installatsiooni tomimimisest. Selle programmi peaülesanne on näidata palju päringuid sekundis see Apache server on võimeline ära täitma.

Ab erinevad võimalused

ab [ -A kasutajanimi:parool ] [ -c päringute_arv ] [ -C küpsise_nimi=väärtus ] [ -d ] [ -e csv-fail ] [ -g gnuplot-fail ] [ -h ] [ -H kohaldatud_päis ] [ -i ] [ -k ] [ -n päringute_arv ] [ -p POST-fail ] [ -P proksi-kasutajanimi:parool ] [ -q ] [ -s ] [ -S ] [ -t ajapiirang ] [ -T sisu_tüüp ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-atribuudid ] [ -X proksi[:port] ] [ -y <tr>-atribuudid ] [ -z <td>-atribuudid ] [http://]hostinimi[:port]/rada

  • -A kasutajanimi:parool - Saab anda ette BASIC mandaadid. Kasutajanimi ja parool on eraldatud ühe kooloniga (:) ning saadedaks ''base64'' kodeeringus. See sõne saadetakse isegi siis kui kasutaja sellist argumenti ära ei määra.
  • -c päringute_arv - Saab ette anda mitu päringut korraga saadetakse. Vaikimisi on üks päring korraga.
  • -C küpsise_nimi=väärtus - Lisa küpsise rida päringule. Selle argumendi formaat on tavaliselt nimi=väärtus. Seda atribuuti on võimalik mitu seada.
  • -d - Mitte näidata percentage served within XX [ms] table. Pärandsüsteemide toeks.
  • -e csv-fail - Kirjutab CSV faili, mis sisaldab palju kulus iga individuaalse protsendi (1-100%) päringute täitmiseks aega (millisekundites).
  • -g gnuplot-fail - Kirjutab kõik mõõdetud tulemused gnuplot ehk TSV (väärtused tabeldamisega eraldatud) faili. Seda faili on väga lihtne importida erinevatesse programmidesse nagu Gnuplot, IDL, Mathematica, Igor või isegi Excel. Veergude pealkirjad on iga rea alguses.
  • -h - Näitab kasutus informatsiooni.
  • -H kohaldatud_päis - Lisab juurde päiseid. See argument tavaliselt lisatakse valiidse HTTP päisena sisaldades kooloniga eraldatud välja-väärtuse paari (näiteks: "Accept-Encoding: zip/zop;8bit").
  • -i - GET päringu asemel tehakse HEAD päringuid.
  • -k - Võimaldab HoiaElus (KeepAlive) funktsiooni (Näiteks teeb mitu päringut samas HTTP sessioonis). Vaikimisi ei ole see võimaldatud.
  • -n päringute_arv - Mitu päringut tehakse selle reeperdamissessiooni vältel. Vaikimisi on ainult üks päring, mis ei anna täielikku ülevaadet serveri jõudlusest.
  • -p POST-fail - POST päringuga saadetavate andmete fail.
  • -P proksi-kasutajanimi:parool - Saab anda ette vajalikud BASIC mandaadid proksi jaoks. Kasutajanimi ja parool on eraldatud ühe kooloniga (:) ning saadedaks base64 kodeeringus. See sõne saadetakse isegi siis kui kasutaja sellist argumenti ära ei määra.
  • -q' - Kui töödeldakse rohkem kui 150 päringut siis ab väljastab edenemisnäidu stderr'i iga 10% pärigute kohta. -q lipp keelab need teated ära.
  • -s - Kasutab tavalise HTTP asemel HTTPS (SSL) protokolli. See lisa on eksperimentaalne ja väga rudimentaarne. Soovitavalt mitte kasutada.
  • -S - Ei kuva mediaani ega standarthälvet ega kuva hoiatus/veateateid kui keskmine ja mediaan erinevad rohekm kui kaks standardhälvet. Pärandsüsteemide toeks.
  • -t ajapiirang - Maksimaalne aeg (sekundites) mis kulutatakse reeperdamissessiooni läbiviimiseks. See implementeerib -n 50000. Seda kasutatakse kui reeperdamine on vaja ära teha mingis kindlas ajavahemikus. Vaikimisi siis ajapiirangut pole seatud.
  • -T sisutüüp - POST andmete päise sisutüüp.
  • -v infotase - Määrab palju programm oma tööst teada annab. 4 - prindib informatsiooni päiste kohta. 3 ja kõrgem - prindib veakoodid (404, 200 jne). 2 ja kõrgem - prindib hoiatused ja muu info.
  • -V - Näitab versiooni ja väljub programmist.
  • -w - Väljastab tulemused HTML tabelitesse. Vaikimisi tabel on kaks veergu lai ning valge tagataustaga.
  • -x <table>-atribuudid - Sõne mida kasutatakse tabeli atribuutitena. Need sisestatakse <table siia >
  • -X proksi[:port] - Määrab proksiserveri ja selle pordi.
  • -y <tr>-atribuudid - Sõne <tr> atribuutideks.
  • -z <td>-atribuudid - Sõne <td> atribuutideks.

Installeerimine

Ab'd üksiku pakettina installeerida ei saa, kuid ta sisaldub pakis apache2-utils.

sudo apt-get install apache2-utils

Samuti tuleb ab ka kaasa, kui installeerida Apache veebiserver.

sudo apt-get install apache2

Näited

Kõik toodud näited on teostatud Ubuntu Server 11.10 (32-bit) operatsioonisüsteemiga.

Jooksutame ab'd neti.ee veebiserveri vastu päringuid tegema. Seame argumendid nii et tehakse 100 päringut ja korraga 5 päringut.

ab -n 100 -c 5 http://www.neti.ee/

Tulemuseks saame sellised andmed:

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.neti.ee (be patient).....done


Server Software:        Apache
Server Hostname:        www.neti.ee
Server Port:            80

Document Path:          /
Document Length:        38830 bytes

Concurrency Level:      5
Time taken for tests:   9.193 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      3914000 bytes
HTML transferred:       3883000 bytes
Requests per second:    10.88 [#/sec] (mean)
Time per request:       459.671 [ms] (mean)
Time per request:       91.934 [ms] (mean, across all concurrent requests)
Transfer rate:          415.76 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       23   42  11.9     42      75
Processing:   220  411 152.2    362    1026
Waiting:       26   49  18.3     46     165
Total:        263  452 152.7    406    1065

Percentage of the requests served within a certain time (ms)
  50%    406
  66%    474
  75%    503
  80%    523
  90%    683
  95%    771
  98%   1017
  99%   1065
 100%   1065 (longest request)

Tulemuseks näitab, et keskmine päringu täitmise aeg oli 452 ms +- 152.7 usaldusväärsusega. Kõige pikem vastamise aeg oli 1065 ms.

Alati peab olema ettevaatlik kui on tegemist veebiserveriga mida ei oma, kuna seda võib lugeda DDoS rünnakuks (palju päringuid samalt kliendilt).

Kasutatud kirjandus

http://stackoverflow.com/questions/66606/what-package-includes-ab-the-apache-server-benchmarking-tool-in-ubuntu

http://www.php-developer.org/apachebench-tutorial-ab-testing-tool-example-in-ubuntu-lucid-lynx/

Autor

Tambet Liiv A22 2011