AB er en forkortelse for ApacheBench.
ab-kommandoen opretter flere samtidige adgangstråde for at simulere flere besøgende, der tilgår en URL-adresse på samme tid. Dens testmål er URL-baserede, så den kan bruges til at teste både apache-belastningsbelastning og andre webserverbelastninger såsom nginx, lighthttp, tomcat, IIS osv.
Ab-kommandoen har lave krav til den computer, der udsteder belastningen, og den bruger ikke meget CPU eller hukommelse. Dog vil det forårsage en enorm belastning på målserveren, og princippet ligner CC-angreb. Du skal også være opmærksom på at teste og bruge det selv, ellers får du for meget belastning på én gang. Det kan få målserveren til at løbe tør for ressourcer, og i alvorlige tilfælde endda forårsage et nedbrud.
1. Introduktion til Apache Bench
ApacheBench er et web-stresstestværktøj, der leveres med Apache-servere, forkortet ab. AB er også et kommandolinjeværktøj med lave native krav til at initiere payloads, og mange samtidige adgangstråde kan oprettes efter AB-kommandoen, hvilket simulerer flere besøgende, der tilgår en bestemt URL-adresse på samme tid, så det kan bruges til at teste belastningstrykket på målserveren. Generelt er AB-værktøjet lille og simpelt, hurtigt at lære og kan give de grundlæggende præstationsindikatorer, du har brug for, men der er ingen grafiske resultater og kan ikke overvåges.
2. Installation af Apache Bench
Først skal du installere Apache-serveren og downloade adressen:Hyperlink-login er synlig.,
Min computer er et Win10 64-bit system, så jeg downloadede "httpd-2.4.33-win64-VC15.zip", link:Hyperlink-login er synlig.
Det anbefales at downloade den nyeste version, da ældre versioner af ab ikke understøtter -r-parameteren.
3. Apache Bench-brug
Forstå parametrene
Parameterbeskrivelse: Format: ab [options] [http://]værtsnavn[:p ort]/sti
-n forespørgsler Antal forespørgsler der skal udføres //Det samlede antal forespørgsler initieret i denne test -c samtidighed Antal flere forespørgsler at foretage // Antal forespørgsler (eller samtidighed) genereret på én gang -t tidsbegrænsning Sekunder til maks. Vent på svar //Det maksimale antal sekunder, en test udføres som standard. -r Afslut ikke på socket modtagelsesfejl. Kast en undtagelse for at fortsætte testopgaven -p postfil Fil, der indeholder data til POST // En fil, der indeholder data, der skal være POST, i et filformat som "p1=1&p2=2". Brugsmetoden er -p 111.txt
-T indholdstype Indholdstype header til POSTing Indholds-typen header, der bruges til POST-dataene, såsom -T "application/x-www-form-urlencoded". (co-p) -v ordrig Hvor meget fejlsøgning skal printes Indstil detaljeniveauet til at vise information – en værdi på 4 eller højere vil vise header-information, en værdi på 3 eller højere vil vise en svarkode (404, 200 osv.), og en værdi på 2 eller højere vil vise advarsler og anden information. -V viser versionsnummer og afkørsler. -C-attribut Tilføj cookie, f.eks. -C "c1=1234,c2=2,c3=3" (gentagelig) -C cookie-name=value Tilføj en cookie til anmodningen: linjen. Den typiske form er et parameterpar navn=værdi. Denne parameter kan gentages, divideret med et komma. Tip: Du kan bruge sessionsimplementeringsprincippet til at sende JSESSIONID-parameteren videre for at opnå funktionen med at vedligeholde sessionen, såsom -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Udprint resultater i HTML-tabeller // Outputresultater i HTML-tabelformat. Som standard er det en tabel med to kolonner brede på hvid baggrund. -jeg bruger HEAD i stedet for GET -x attributter Streng skal indsættes som tabelattributter -y attributter Streng skal indsættes som tr-attributter -z attributter Streng skal indsættes som td eller th attributter -H attribut Tilføj vilkårlig overskriftslinje, f.eks. 'Accept-Kodning: gzip' Indsættes efter alle normale overskriftslinjer. (gentageligt) -En attribut Tilføj Basic WWW Autentificering, attributterne er et koloni-adskilt brugernavn og adgangskode. -P-attribut Tilføj Basic Proxy Authentication, attributterne er et brugernavn og adgangskode adskilt i kolon. -X proxy: port Proxyserver og portnummer at bruge -V Print versionsnummer og udgang -k Brug HTTP KeepAlive-funktionen -d Vis ikke de serverede percentiler. -S Vis ikke tillidsestimatorer og advarsler. -g filnavn Output indsamlede data til gnuplot-formatfil. -e filnavn Output CSV-fil med serverede procenter -h Vis brugsinformation (denne meddelelse) Der er mange parametre, generelt kan vi bruge -c og -n parametre. For eksempel:
Udpak "httpd-2.4.33-win64-VC15.zip", gå til \Apache24\bin, og start den med kommandolinjen til cmd, som vist i figuren nedenfor:
SSL ikke kompileret i; ingen https-understøttelse: SSL er ikke kompileret i; Der er ingen https-support, hvilket betyder, at hjemmesiden ikke understøtter https.
Testresultater:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL ikke kompileret i; Ingen https-support
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Dette er ApacheBench, version 2.3 <$Revision: 1826891 $> Ophavsret 1996 Adam Twiss, Zeus Technology Ltd,Hyperlink-login er synlig. Licenseret til The Apache Software Foundation,Hyperlink-login er synlig.
Benchmarkingwww.itsvse.com(vær tålmodig) Gennemført 100 forespørgsler Gennemført 200 anmodninger Gennemført 300 anmodninger Har gennemført 400 anmodninger Gennemført 500 anmodninger Gennemført 600 anmodninger Gennemført 700 forespørgsler Gennemført 800 forespørgsler Har gennemført 900 forespørgsler Gennemført 1000 forespørgsler Færdiggjort 1000 forespørgsler
Serversoftware: Serverværtsnavn: www.itsvse.com Serverport: 80
Dokumentsti: / Dokumentlængde: 178 bytes
Samtidighedsniveau: 10 Tid brugt til tests: 44,916 sekunder Komplette anmodninger: 1000 Mislykkede forespørgsler: 0 Ikke-2xx svar: 1000 Samlet overført: 349.000 bytes HTML overført: 178.000 bytes Forespørgsler per sekund: 22,26 [#/sek] (gennemsnitligt) Tid pr. anmodning: 449.164 [ms] (gennemsnit) Tid pr. anmodning: 44,916 [ms] (gennemsnitligt, på tværs af alle samtidige anmodninger) Overførselshastighed: 7,59 [Kbytes/sek] modtaget
Forbindelsestider (ms) Min gennemsnit[+/-SD] median maks
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
Procentdel af anmodningerne leveret inden for en bestemt tid (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (længste anmodning) Parameteranalyse:
Dokumentsti: Testside Dokumentlængde: Sidestørrelsen Samtidighedsniveau: Antallet af samtidige forløb, der testes samtidig Tid brugt på prøver: Varigheden af hele testen Fuldførte anmodninger: Antallet af opfyldte anmodninger Mislykkede anmodninger: Antallet af mislykkede forespørgsler Skrivefejl: 0 Samlet overført: Mængden af netværk, der overføres gennem processen HTML overført: Mængden af HTML-indhold, der overføres gennem processen Forespørgsler per sekund: En af de vigtigste målepunkter, svarende til transaktioner per sekund i LR, og gennemsnit i parentes angiver, at dette er et gennemsnit Tid pr. anmodning: De to vigtigste målinger, svarende til gennemsnitlig transaktionsresponstid i LR, i parentes angiver, at dette er et gennemsnit Tid pr. anmodning: Gennemsnittet af den faktiske køretid for hver forbindelsesanmodning Overførselshastighed: Gennemsnitlig trafik pr. sekund på netværket, hvilket kan hjælpe med at udelukke problemet med overdreven netværkstrafik, der forårsager lange responstider
|