Hur man utför webbserverprestanda riktmärke?

Känner du din genomsnittliga responstid på webbplatsen? Vet du hur många samtidiga användare din webbplats kan hantera?


Belastningstest är viktigt för att webbapplikationer ska känna till webbplatsen kapacitet. Om du ska välja webbservern är en av de första sakerna du vill göra att utföra lasttestningen och se vilken som fungerar bra för dig.

Benchmarking kan hjälpa dig att bestämma;

  • Vilken webbserver fungerar bäst
  • Antal servrar du behöver för att betjäna x antal förfrågningar
  • Vilken konfiguration ger dig de bästa resultaten

Det finns flera onlineverktyg för att utföra ett stresstest; Men om du letar efter en intern lösning eller vill jämföra webbserverns prestanda kan du använda det ApacheBench och alternativt några av de nedan listade verktygen.

Jag har använt Apache & Nginx webbserver värd den DigitalOcean att testa det.

ApacheBench

ApacheBench (ab) är ett kommandoradsprogram med öppen källkod som fungerar med vilken webbserver som helst. I det här inlägget kommer jag att förklara hur man installerar det lilla programmet och utför belastningstestet för att jämföra resultaten.

Apache

Låt oss få ApacheBench installerad med ett yum-kommando.

yum installera httpd-verktyg

Om du redan har httpd-verktyg kan du ignorera detta.

Låt oss nu se hur det presterar för 5000 förfrågningar med en samtidighet på 500.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Detta är ApacheBench, version 2.3 <$ Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensierad till Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (ha tålamod)
Avslutade 500 förfrågningar
Avslutade 1000 förfrågningar
Avslutade 1500 förfrågningar
Avslutade 2000 förfrågningar
Avslutade 2500 förfrågningar
Avslutade 3000 förfrågningar
Avslutade 3500 förfrågningar
Avslutade 4000 förfrågningar
Avslutade 4500 förfrågningar
Avslutade 5000 förfrågningar
Färdig 5000 förfrågningar
Serverprogramvara: Apache / 2.2.15
Servervärdnamn: localhost
Serverport: 80
Dokumentväg: /
Dokumentets längd: 4961 byte
Samtidighetsnivå: 500
Tid för test: 13.389 sekunder
Kompletta förfrågningar: 5000
Misslyckade förfrågningar: 0
Skrivfel: 0
Icke-2xx svar: 5058
Totalt överfört: 26094222 byte
HTML överförd: 25092738 byte
Begäran per sekund: 373,45 [# / sek] (medelvärde)
Tid per förfrågan: 1338.866 [ms] (medelvärde)
Tid per förfrågan: 2.678 [ms] (medelvärde, över alla samtidiga förfrågningar)
Överföringshastighet: 1903,30 [Kbytes / sek] mottagen
Anslutningstider (ms)
min medelvärde [+/- sd] median max
Anslut: 0 42 20,8 41 1000
Bearbetning: 0 428 2116,5 65 13310
Väntar: 0 416 2117.7 55 13303
Totalt: 51 470 2121,0 102 13378
Procentandel av förfrågningarna som visas inom en viss tid (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (längsta begäran)
[[Email protected] ~] #

Så som ni ser har Apache hanterat 373 förfrågningar per sekund, och det tog totalt 13.389 sekunder att betjäna de totala förfrågningarna.

Nu vet du att standardkonfigurationen kan tjäna dessa många förfrågningar, så när du gör några konfigurationsändringar kan du göra testet igen för att jämföra resultaten och välja bäst ett.

Nginx

Låt oss göra testet vad vi gjorde för Apache så att du kan jämföra vilken som presterar bättre.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Detta är ApacheBench, version 2.3 <$ Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensierad till Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (ha tålamod)
Avslutade 500 förfrågningar
Avslutade 1000 förfrågningar
Avslutade 1500 förfrågningar
Avslutade 2000 förfrågningar
Avslutade 2500 förfrågningar
Avslutade 3000 förfrågningar
Avslutade 3500 förfrågningar
Avslutade 4000 förfrågningar
Avslutade 4500 förfrågningar
Avslutade 5000 förfrågningar
Färdig 5000 förfrågningar
Serverprogramvara: nginx / 1.10.1
Servervärdnamn: localhost
Serverport: 80
Dokumentväg: /
Dokumentets längd: 3698 byte
Samtidighetsnivå: 500
Tiden för tester: 0,758 sekunder
Kompletta förfrågningar: 5000
Misslyckade förfrågningar: 0
Skrivfel: 0
Totalt överfört: 19660000 byte
HTML överförd: 18490000 byte
Begäran per sekund: 6593,48 [# / sek] (medelvärde)
Tid per begäran: 75.832 [ms] (medelvärde)
Tid per förfrågan: 0,152 [ms] (medelvärde, över alla samtidiga förfrågningar)
Överföringshastighet: 25317,93 [Kbytes / sek] mottagen
Anslutningstider (ms)
min medelvärde [+/- sd] median max
Anslut: 0 6 11,0 2 53
Bearbetning: 5 19 8.2 17 53
Väntar: 0 18 8.2 16 47
Totalt: 10 25 17,4 18 79
Procentandel av förfrågningarna som visas inom en viss tid (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (längsta begäran)
[[Email protected] ~] #

WOW! Såg du att? Nginx hanteras 6593 förfrågningar per sekund! En vinnare.

Så du ser bara om du jämför med två webbservrar får du en uppfattning vilken du ska välja för din webbapplikation.

Ovan testet är på CentOS 6.8, 64 bit. Du kan prova flera kombinationer av OS & Webbserverversion för optimala resultat.

BELÄGRING

BELÄGRING är HTTP-belastningstestverktyg som stöds på UNIX. Du kan lägga till flera URL: er i en textfil som du vill ladda testet mot. Du kan installera belägring med yum.

# yum installera belägring

Låt oss köra testet med 500 samtidiga förfrågningar i 5 sekunder.

[[Email protected] ~] # belägring -q -t 5S -c 500 http: // localhost /
Lyfter serverbelägringen … klar.
Transaktioner: 4323 träffar
Tillgänglighet: 100,00%
Förfluten tid: 4,60 sek
Överförd data: 15,25 MB
Svarstid: 0,04 sek
Transaktionshastighet: 939,78 trans / sek
Genomföring: 3,31 MB / sek
Samtidighet: 37,97
Framgångsrika transaktioner: 4323
Misslyckade transaktioner: 0
Längsta transaktion: 1.04
Kortaste transaktion: 0,00
[[Email protected] ~] #

För att dela upp parametrarna.

-q – för att köra det tyst (visar inte förfrågningsinformation)

-t – kör i 5 sekunder

-c – 500 samtidiga förfrågningar

Så som ni ser är tillgängligheten 100% och responstiden är 0,04 sekunder. Du kan justera lasttestparametern baserat på ditt mål.

Gobench

Gobench är skriven på Go-språk och enkel lasttestverktyg för att jämföra webbserverns prestanda. Det stöder mer än 20 000 samtidiga användare som ApacheBench inte gör.

Apache JMeter

JMeter är ett av de populäraste open source-verktygen för att mäta webbapplikationsprestanda. JMeter är en Java-baserad applikation och inte bara webbserver, men du kan använda den mot PHP, Java. ASP.net, SOAP, REST, etc..

JMeter fick anständigt användargränssnitt, och den senaste versionen 3.0 kräver Java 7 eller högre för att starta applikationen. Du måste prova JMeter om ditt mål är att optimera webbapplikationens prestanda.

wrk

wrk är ett annat modernt prestandamätverktyg för att lägga en belastning på din webbserver och ge dig latens, begäran per sekund, överföring per sekund, etc. detaljer.

Med wrk kan du ange att köra ett lasttest med ett antal trådar.

Låt oss ta ett exempel på att köra ett test i 5 minuter med 500 samtidiga användare med 8 trådar.

wrk –t8 –c500-d300s http: // localhost

HTTPLoad

Httpload kan läsa flera URL: er från filen, eller du kan ange det i kommandotargumentet. Den senaste versionen stöder SSL / TLS som innebär att du kan fråga HTTPS (SSL) -aktiverad webbadress.

När du testar den SSL-aktiverade URL: n har du ett alternativ att specificera chifferet och ett enkelt testkommando ser ut så här.

httpload -ciffer AES256-SHA -parallell 200 -sekunder 120 URL_LIST.txt

För att förstå det bättre körs testet ovan mot 200 samtidiga användare under 2 minuter.

Curl-loader

curl-loader är skriven i C för att simulera applikationsbelastning, och det stöder SSL / TLS. Tillsammans med webbsidatest kan du också använda detta öppna källkodsverktyg för att utföra belastning på FTP-servrar.

Du kan skapa en testplan med en blandning av HTTP, HTTPS, FTP och FTPS i en enda batchkonfiguration.

httperf

De httperf är ett högpresterande verktyg som fokuserar på mikro- och makronivån. Det stöder HTTP / 1.1- och SSL-protokoll.

Om du har förväntat dig att antalet samtidiga användare och vill testa om ett antal förfrågningar kan serveras av din webbserver kan du använda följande kommando.

httperf – server lokalhost –port 80 – nummer-anslutningar 1000 – betygsätt 100

Ovanstående kommando testar med 100 förfrågningar per sekund för 1000 HTTP-förfrågningar.

tsung

tsung är ett distribuerat stresstestverktyg med flera protokoll för att stressa HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL-server. Det stöder HTTP / 1.0, HTTP / 1.1 och cookies hanteras automatiskt.

Det är möjligt att skapa en rapport med Tsung.

Slutsats

Jag hoppas ovan benchmarkingverktyg ge dig en idé om din webbserverprestanda och hjälpa dig att bestämma vad som fungerar bäst för ditt projekt.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector