Ab
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://www.php-developer.org/apachebench-tutorial-ab-testing-tool-example-in-ubuntu-lucid-lynx/
Autor
Tambet Liiv A22 2011