AB este o abreviere pentru ApacheBench.
Comanda ab creează mai multe fire de acces simultane pentru a simula mai mulți vizitatori care accesează simultan o adresă URL. Țintele sale de testare sunt bazate pe URL-uri, astfel încât poate fi folosit pentru a testa atât stresul încărcării Apache, cât și alte stresuri ale serverului web, cum ar fi nginx, lighthttp, tomcat, IIS etc.
Comanda ab are cerințe scăzute pentru calculatorul care emite sarcina și nu consumă mult CPU sau memorie. Totuși, va cauza o încărcare uriașă pe serverul țintă, iar principiul său este similar cu atacurile CC. De asemenea, trebuie să fii atent la testare și la folosirea lui, altfel vei avea prea multă încărcătură deodată. Acest lucru poate determina serverul țintă să rămână fără resurse și, în cazuri severe, chiar să provoace o cădere.
1. Introducere în Apache Bench
ApacheBench este un instrument web de testare a stresului care vine cu servere Apache, prescurtat ab. AB este, de asemenea, un instrument de linie de comandă cu cerințe native scăzute pentru inițierea sarcinilor utile, iar multe fire de acces concurente pot fi create conform comenzii AB, simulând mai mulți vizitatori care accesează simultan o anumită adresă URL, astfel încât să poată fi folosit pentru a testa presiunea de încărcare a serverului țintă. În general, instrumentul AB este mic și simplu, se învață rapid și poate oferi indicatorii de performanță de bază de care ai nevoie, dar nu există rezultate grafice și nu poate fi monitorizat.
2. Instalarea băncii Apache
Mai întâi, trebuie să instalezi serverul Apache, să descarci adresa:Autentificarea cu hyperlink este vizibilă.,
Calculatorul meu este un sistem Win10 pe 64 de biți, așa că am descărcat "httpd-2.4.33-win64-VC15.zip"., link:Autentificarea cu hyperlink este vizibilă.
Se recomandă descărcarea celei mai recente versiuni, deoarece versiunile mai vechi ale ab-ului nu suportă parametrul -r.
3. Utilizarea la Apache Bench
Înțelege parametrii
Descrierea parametrului: Format: ab [opțiuni] [http://]nume gazdă[:p ort]/cale
-n cereri Numărul de cereri de efectuat // Numărul total de cereri inițiate în acest test -c concurență Număr de mai multe cereri pentru a face // Numărul de cereri (sau concurență) generate simultan -t Limită de timp Secunde până la maxim. Așteptați răspunsuri //Numărul maxim de secunde în care un test este efectuat implicit. -r Erori de a nu ieși la primirea socket-ului. Aruncă o excepție pentru a continua sarcina de test -p postfile File care conține date către POST // Un fișier care conține date care trebuie să fie POST, într-un format de fișier precum "p1=1&p2=2". Metoda de utilizare este -p 111.txt
-T conținut-type Antet Content-type pentru POSTing Antetul Content-type folosit pentru datele POST, cum ar fi -T "application/x-www-form-urlencoded". (co-p) -v verbozitate Câtă informație de depanare trebuie tipărită Setează nivelul de detaliu pentru a afișa informațiile – o valoare de 4 sau mai mare va arăta informații de antet, o valoare de 3 sau mai mare va afișa un cod de răspuns (404, 200 etc.), iar o valoare de 2 sau mai mare va afișa avertismente și alte informații. -V afișează numărul versiunii și iese. -Atributul C Adaugă cookie, de exemplu. -C "c1=1234,c2=2,c3=3" (repetabil) -C cookie-name=value Adaugă un cookie la linia request:. Forma tipică este o pereche de parametri nume=valoare. Acest parametru poate fi repetat, împărțit la virgulă. Sfat: Poți folosi principiul implementării sesiunii pentru a trece parametrul JSESSIONID și a obține funcția de menținere a sesiunii, cum ar fi -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Tipărește rezultatele în tabele HTML // Rezultate de ieșire în format de tabel HTML. În mod implicit, este un tabel cu două coloane lățime pe un fundal alb. -Folosesc HEAD în loc de GET -x atribute Șir de inserat ca atribute de tabel -y atribute String de inserat ca atribute tr -z atribute String to insert ca atribute td sau th -Atributul H Adaugă o linie de titlu arbitrară, de exemplu. 'Accept-Encoding: gzip' Introdus după toate liniile normale de antet. (repetabil) -Un atribut Adaugă Autentificare WWW de bază, atributele sunt nume de utilizator și parolă separate de două puncte. -Atributul P Adaugă Autentificare Proxy de bază, atributele sunt un nume de utilizator și parolă separate de două puncte. -X proxy:port Proxyserver și numărul portului de utilizat -V Imprimă numărul versiunii și ieșirea -k Folosește funcția HTTP KeepAlive -d Nu arătați percentile servite la masă. -S Nu arăta estimatoare de încredere și avertismente. -g Nume fișier Trimite datele colectate în fișierul de format gnuplet. -e File name Scoate fișierul CSV cu procentele servite -h Afișează informații despre utilizarea (acest mesaj) Există mulți parametri, în general putem folosi parametrii -c și -n. De exemplu:
Deblochează "httpd-2.4.33-win64-VC15.zip", mergi la \Apache24\bin și pornește-l cu linia de comandă cmd, așa cum se arată în figura de mai jos:
SSL necompilat; fără suport HTTPS: SSL nu este compilat în; Nu există suport pentru https, ceea ce înseamnă că site-ul nu suportă https.
Rezultatele testelor:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL necompilat; Fără suport HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Aceasta este ApacheBench, Versiunea 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,Autentificarea cu hyperlink este vizibilă. Licențiat către The Apache Software Foundation,Autentificarea cu hyperlink este vizibilă.
Benchmarkingwww.itsvse.com(ai răbdare) Au finalizat 100 de cereri 200 de cereri finalizate 300 de cereri finalizate 400 de cereri finalizate 500 de cereri finalizate 600 de cereri finalizate 700 de cereri finalizate 800 de cereri finalizate 900 de cereri finalizate 1000 de cereri finalizate Am terminat 1000 de cereri
Software server: Numele gazdei serverului: www.itsvse.com Port server: 80
Traseul documentului: / Lungimea documentului: 178 octeți
Nivel de concurență: 10 Timpul necesar pentru teste: 44,916 secunde Cereri complete: 1000 Cereri eșuate: 0 Răspunsuri non-2xx: 1000 Total transferați: 349000 octeți HTML transferat: 178000 octeți Cereri pe secundă: 22,26 [#/sec] (medie) Timp pe cerere: 449.164 [ms] (medie) Timp per cerere: 44.916 [ms] (medie, pentru toate cererile concurente) Rată de transfer: 7,59 [Kbytes/sec] primită
Timpi de conexiune (ms) media minimă[+/-sd] mediana maximă
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Procentul solicitărilor deservite într-un anumit interval de timp (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (cea mai lungă cerere) Analiza parametrilor:
Traseul documentului: pagina de testare Lungimea documentului: Dimensiunea paginii Nivelul concurenței: Numărul concurențelor testate simultan Timpul necesar pentru teste: durata întregului test Cereri complete: Numărul de cereri finalizate Cereri eșuate: Numărul de cereri eșuate Erori de scriere: 0 Total transferat: Cantitatea de rețea transferată pe parcursul procesului HTML transferat: Cantitatea de conținut HTML transferat pe parcursul procesului Cereri pe secundă: Unul dintre cei mai importanți indicatori, echivalent cu tranzacțiile pe secundă în LR, și media între paranteze, indică faptul că aceasta este o medie Timp per cerere: Cei doi indicatori cei mai importanți, echivalentul timpului mediu de răspuns al tranzacțiilor în LR, media între paranteze indică faptul că aceasta este o medie Timpul per cerere: Media timpului real de rulare pentru fiecare cerere de conexiune Rata de transfer: Traficul mediu pe secundă pe rețea, ceea ce poate ajuta la excluderea problemei traficului excesiv de rețea care cauzează timpi lungi de răspuns
|