AB är en förkortning för ApacheBench.
Ab-kommandot skapar flera samtidiga åtkomsttrådar för att simulera att flera besökare samtidigt får tillgång till en URL-adress. Dess testmål är URL-baserade, så den kan användas för att testa både apache-belastning och andra webbserverbelastningar såsom nginx, lighthttp, tomcat, IIS, etc.
Ab-kommandot har låga krav på datorn som belastar datorn, och det tar inte upp mycket CPU eller minne. Det kommer dock att orsaka en enorm belastning på målservern, och dess princip liknar CC-attacker. Du måste också vara uppmärksam på att testa och använda det själv, annars får du för mycket belastning på en gång. Det kan orsaka att målservern får slut på resurser, och i allvarliga fall till och med orsaka en krasch.
1. Introduktion till Apache Bench
ApacheBench är ett webb-stresstestverktyg som levereras med Apache-servrar, förkortat ab. AB är också ett kommandoradsverktyg med låga inbyggda krav för att initiera nyttolaster, och många samtidiga åtkomsttrådar kan skapas enligt AB-kommandot, vilket simulerar flera besökare som samtidigt använder en viss URL-adress, så att det kan användas för att testa belastningstrycket på målservern. Generellt är AB-verktyget litet och enkelt, snabbt att lära sig och kan ge de grundläggande prestandaindikatorer du behöver, men det finns inga grafiska resultat och kan inte övervakas.
2. Installation av Apache Bench
Först måste du installera Apache-servern, ladda ner adressen:Inloggningen med hyperlänken är synlig.,
Min dator är ett Windows 10 64-bitars system, så jag laddade ner "httpd-2.4.33-win64-VC15.zip", länk:Inloggningen med hyperlänken är synlig.
Det rekommenderas att ladda ner den senaste versionen, eftersom äldre versioner av ab inte stöder parametern -r.
3. Apache Bench-användning
Förstå parametrarna
Parameterbeskrivning: Format: ab [options] [http://]hostname[:p ort]/path
-n förfrågningar Antal förfrågningar att utföra //Det totala antalet förfrågningar initierade i detta test -c samtidighet Antal flera förfrågningar att göra // Antal förfrågningar (eller samtidighet) genererade samtidigt -t tidsgräns Sekunder till max. Vänta på svar //Det maximala antalet sekunder ett test utförs som standard. -r Sluta inte på socket få fel. Kasta ett undantag för att fortsätta testuppgiften -p postfil Fil som innehåller data till POST // En fil som innehåller data som måste vara POST, i ett filformat som "p1=1&p2=2". Användningsmetoden är -p 111.txt
-T innehållstyp Innehållstyp header för POSTing Innehållstypen som används för POST-data, såsom -T "application/x-www-form-urlencoded". (komp) -v ordrikedom Hur mycket felsökningsinformation ska skrivas ut Ställ in detaljnivån för att visa information – ett värde på 4 eller högre visar headerinformation, ett värde på 3 eller högre visar en svarskod (404, 200, etc.), och ett värde på 2 eller högre visar varningar och annan information. -V visar versionsnumret och utgångar. -C-attributet Lägg till cookie, t.ex. -C "c1=1234,c2=2,c3=3" (upprepningsbar) -C cookie-name=value Lägg till en cookie på raden request: . Den typiska formen är ett parameterpar namn=värde. Denna parameter kan upprepas, dividerat med en komma. Tips: Du kan använda sessionsimplementeringsprincipen för att skicka JSESSIONID-parametern för att uppnå funktionen att underhålla sessionen, till exempel -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Skriv ut resultat i HTML-tabeller // Utdata resultat i HTML-tabellformat. Som standard är det en tabell med två kolumner breda på vit bakgrund. -I använder HEAD istället för GET -x attribut Sträng att infoga som tabellattribut -y attribut Sträng att infoga som tr-attribut -z attribut Sträng att infoga som td eller th attribut -H attribut Lägg till godtycklig rubrikrad, t.ex. 'Accept-Encoding: gzip' Insatt efter alla vanliga rubrikrader. (upprepningsbart) -Ett attribut Lägg till grundläggande WWW-autentisering, attributen är ett användarnamn och lösenord separerat av kolon. -P-attribut Lägg till grundläggande proxyautentisering, attributen är ett användarnamn och lösenord separerat i kolon. -X proxy:port Proxyserver och portnummer att använda -V Tryckt versionsnummer och utgång -k Använd HTTP KeepAlive-funktionen -d Visa inte procenttal som serveras. -S Visa inte förtroendeskattare och varningar. -g filnamn Exportera insamlad data till gnuplot-formatfil. -e filnamn Utdata CSV-fil med procentsatser som serverats -h Visa användningsinformation (detta meddelande) Det finns många parametrar, generellt kan vi använda -c och -n parametrar. Till exempel:
Zipp upp "httpd-2.4.33-win64-VC15.zip", gå till \Apache24\bin och starta med kommandoraden cmd, som visas i figuren nedan:
SSL kompileras inte i; inget https-stöd: SSL är inte kompilerat i; Det finns inget https-stöd, vilket betyder att webbplatsen inte stödjer https.
Testresultat:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL kompileras inte 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/ Detta är ApacheBench, version 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,Inloggningen med hyperlänken är synlig. Licensierad till Apache Software Foundation,Inloggningen med hyperlänken är synlig.
Benchmarkingwww.itsvse.com(ha tålamod) Slutfört 100 förfrågningar Slutfört 200 förfrågningar Slutfört 300 förfrågningar Slutfört 400 förfrågningar Slutfört 500 förfrågningar Slutfört 600 förfrågningar Slutfört 700 förfrågningar Slutfört 800 förfrågningar Slutfört 900 förfrågningar Slutfört 1000 förfrågningar Slutfört 1000 förfrågningar
Serverprogramvara: Servervärdsnamn: www.itsvse.com Serverport: 80
Dokumentväg: / Dokumentlängd: 178 byte
Samtidighetsnivå: 10 Tid för tester: 44,916 sekunder Fullständiga förfrågningar: 1000 Misslyckade förfrågningar: 0 Icke-2xx-svar: 1000 Totalt överfört: 349 000 byte HTML-överförd: 178 000 byte Förfrågningar per sekund: 22,26 [#/sek] (medel) Tid per begäran: 449.164 [ms] (medelvärde) Tid per begäran: 44,916 [ms] (medelvärde, över alla samtidiga förfrågningar) Överföringshastighet: 7,59 [Kbyte/s] mottagen
Anslutningstider (ms) Min medel[+/-SD] median max
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
Procentandel av de förfrågningar som delges inom en viss tid (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (längsta begäran) Parameteranalys:
Dokumentbana: Testsida Dokumentlängd: Sidstorleken Samtidighetsnivå: Antalet samtidigheter som testas samtidigt Tid som tas för prov: Hela provets längd Fullständiga förfrågningar: Antalet slutförsörjda förfrågningar Misslyckade förfrågningar: Antalet misslyckade förfrågningar Skrivfel: 0 Total överförd: Mängden nätverk som överförts under processen HTML överförd: Mängden HTML-innehåll som överförts under processen Förfrågningar per sekund: En av de viktigaste måtten, motsvarande transaktioner per sekund i LR, och medelvärdet inom parentes indikerar att detta är ett genomsnitt Tid per förfrågan: De två viktigaste måtten, motsvarande genomsnittlig svarstid på transaktioner i LR, medelvärde inom parentes indikerar att detta är ett genomsnitt Tid per förfrågan: Genomsnittet av den faktiska körtiden för varje anslutningsförfrågan Överföringshastighet: Genomsnittlig trafik per sekund på nätverket, vilket kan hjälpa till att utesluta problemet med överdriven nätverkstrafik som orsakar långa svarstider
|