Apache Benchmark + GNUPlot: Mål og graf ydeevnen på din webserver

Det betyder ikke noget, om det bruges Nginx, Apache, Lighttpd eller på anden måde vil enhver netværksadministrator, der har en webserver, på et eller andet tidspunkt gerne vide, hvor hurtigt webserveren reagerer på et givet antal forespørgsler.

Managed-Services-Server-Management-e1368625038693

Apache-benchmark + GNUPlot

Denne gang bruger vi et værktøj kaldet Apache-benchmark, som selvom den har 'apache' i sit navn, IKKE kun er til måling af Apache-ydeevne, men kan også bruges til Nginx og andre. Faktisk bruger jeg det til at måle ydeevnen for Nginx.

Vi vil også bruge GNUPlot, som hjælper os med at lave grafer som disse med et par linjer:

resultater

Installation af Apache Benchmark og GNUPlot

Apache Benchmark er et værktøj, som vi kan bruge efter installation af Apache-pakken, GNUPlot vil være tilgængelig efter installation af pakken med samme navn. Så ...

På distroer som Debian, Ubuntu eller lignende:

sudo apt-get install apache2 gnuplot

I distroer som ArchLinux eller derivater:

sudo pacman -S apache gnuplot

Vi behøver kun at installere Apache-pakken, vi behøver ikke starte den eller konfigurere noget andet, det er bare nok at installere den.

Brug af Apache-benchmark

Hvad vi vil gøre er at sende et specifikt antal anmodninger (100) i grupper på flere (fra 20 til 20) til et specifikt sted. Vi gemmer resultatet i en .csv-fil (result.csv) og behandler det derefter med GNUPloit, linjen vil være:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

Det er meget vigtigt at placere den endelige / i URL'en til det sted, der skal måles.

Dette er output eller log, der viser mig, når jeg tester et websted på mit netværk:

Dette er ApacheBench, version 2.3 <$ Revision: 1638069 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licenseret til Apache Software Foundation, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (vær tålmodig) ..... færdig

Serversoftware: nginx Serverværtsnavn: gutl.jovenclub.cu Serverport: 80

Dokumentsti: /
Dokumentlængde: 206 byte Konkurrenceniveau: 20 Tid taget til test: 0.101 sekunder Komplette anmodninger: 100 Mislykkede anmodninger: 27 (Forbind: 0, Modtag: 0, Længde: 27, Undtagelser: 0) Ikke-2xx-svar: 73 Samlet overført: 1310933 bytes HTML overført: 1288952 bytes
Anmodninger pr. Sekund: 993.24 [# / sek] (gennemsnit)
Tid pr. Anmodning: 20.136 [ms] (middelværdi) Tid pr. Anmodning: 1.007 [ms] (gennemsnit, på tværs af alle samtidige anmodninger) Overførselshastighed: 12715.49 [Kbytes / sek.] Modtaget Forbindelse gange (ms) min. Gennemsnit [+/- sd] median max Forbindelse: 0 1 0.2 1 1 Behandling: 1 17 24.8 4 86 Venter: 1 15 21.5 4 76 I alt: 1 18 24.8 5 87 Procentdel af anmodningerne, der serveres inden for en bestemt tid (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (længste anmodning)

Jeg har markeret med rødt, hvad jeg anser for at være det vigtigste, som har været mere eller mindre:

  1. Data fra den server, vi tester, samt den pågældende URL.
  2. Antal anmodninger pr. Sekund.
  3. Hvor mange millisekunder tog serveren for at servicere den anmodning, der tog længst tid, dvs. den, der tog længst tid at blive besvaret.

Med disse oplysninger kan de have en idé om, hvor lang tid det tager for serveren at deltage i den mængde anmodninger, de kan derefter tilføje et bedre cache-system, deaktivere moduler, som de ikke bruger osv. Osv. Køre testen igen og se om ydeevnen forbedres eller ej .

Jeg anbefaler at køre testen 2 eller 3 gange, så du opretter noget som en margen, da resultaterne af to tests i træk sjældent er identiske.

Andre nyttige Apache Benchmark-indstillinger eller parametre:

-k -H 'Accept-kodning: gzip, deflate' : Med dette ab accepterer cache og komprimering, som serveren har konfigureret, så tiderne bliver lavere.

-f urls.txt : Så i stedet for bare at teste webstedets indeks, udfører det test på de webadresser, som vi angiver i den fil.

Alligevel ... se på mand ab for dig at se.

Vis resultatet i en graf:

At sætte denne output i et billede, det vil sige i et mere visuelt medium, og at det mange gange er alt, hvad ledere formår at forstå ... til dette vil vi bruge som jeg sagde før, GNUPlot

I den samme mappe, hvor vi har filresultaterne.csv (husk, vi genererede lige med ovenstående kommando) vi skal oprette en fil kaldet gnuplot.p:

nano plot.p

I det vil vi sætte følgende:

indstil terminal png størrelse 600 sæt output "results.png"sæt titel"100 anmodninger, 20 samtidige anmodninger "sæt størrelsesforhold 0.6 sæt gitter og sæt xlabel"anmodninger"sæt ylabel"responstid (ms)"grund"results.csv"ved hjælp af 9 glat sbezier med linjetitel"gutl.jovenclub.cu"

Jeg har markeret med rødt, hvad du altid skal kontrollere. Det er og fra top til bund:

  1. Navnet på den billedfil, der skal genereres
  2. Antal samlede og samtidige anmodninger.
  3. Navnet på den fil, vi lige har genereret.
  4. Domæne vi arbejder på.

Når vi har sat det ind, skal du gemme og afslutte (Ctrl + O og derefter Ctrl + X), udfører vi følgende:

gnuplot plot.p

Og voila, der vil generere grafen med det ønskede navn, min er:

resultater2

Slutningen!

Apache Benchmark har mange flere muligheder, der er også mange kombinationer, som vi kan bruge til at gøre vores præstationstest endnu mere komplet.

Men hej, dette har været det grundlæggende 😉

God fornøjelse!


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Francisco sagde han

    Interessant apache-benchmark, jeg vidste ikke om gnuplot, er det muligt at ændre outputstilen? Jeg siger, hvad angår en formel rapport.

    Hilsner fra Chile.

    1.    KZKG ^ Gaara sagde han

      Ja, der er mange konfigurationer på nettet til gnuplot, søg på Google for at se om du finder nogen seriøs eller professionel nok til at du kan bruge det, for det er alles smag gusto

  2.   Wolf119 sagde han

    Ummm Jeg skal teste det lige nu på en virtuel apache-server, som jeg kører for at se, hvordan dette går, med hensyn til GUTL, da det affyrer meget hurtigt fra 80 anmodninger, ikke? Lad os se, at 100 ms ikke De er intet, men det høje, der giver 10 flere anmodninger sammenlignet med 70 til 80 med 80 til 90, kalder min opmærksomhed

    1.    KZKG ^ Gaara sagde han

      Det skal skyldes køen eller antallet af maksimale tråde, der skal deltages samtidigt. Imidlertid gjorde jeg testen uden gzip, uden deflatering, uden cache eller noget 😉

  3.   Søren Brun sagde han

    Meget interessant, især til brug af GNUPlot. Fra hvad jeg ser kan det bruges til at generere grafer fra næsten ethvert datasæt, ikke? ...

    1.    KZKG ^ Gaara sagde han

      Ja selvfølgelig, du videregiver dataene i en fil adskilt af kommaer eller noget lignende, du fortæller det, hvordan man behandler det i konfigurationsfilen, og voila

  4.   Adolfo sagde han

    Hej, jeg bruger altid det på at læse denne blog, men jeg har aldrig kommenteret nogen artikel, og det virker som en god mulighed.
    Hvad jeg vil dele med dig er, at denne type graf kan fejlagtigt fortolkes, fordi Apache Bench sorterer resultatet ved hjælp af ttime (total tid) i stedet for sekventiel tid. Selvom dataene stadig er sande, viser grafen sandsynligvis ikke, hvad vi vil have.
    Her forlader jeg linket, hvor jeg læste det.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Greetings.

  5.   Hugo sagde han

    Apache Benchmark er ikke det bedste værktøj til at måle ydeevnen for HTTP-servere på computere med flere kerner. Desuden er kun 100 anmodninger med 20 samtidige forbindelser en meget svag test, noget mere realistisk ville være 1,000 eller 10,000 anmodninger med 100 samtidige forbindelser (det er kendt at Nginx er en af ​​applikationerne, der kan betjene mere end 10,000 anmodninger pr. sekund), og til dette er det bedre at bruge et værktøj som weightttp, som er designet til multi-core computere og bruger epoll, som er hurtigere, i modsætning til Apache Bench, som bruger en enkelt tråd og en mindre effektiv mekanisme til håndtering af begivenheder.

    For at få min pointe, forudsat at serveren kun har 4 kerner:

    vejningsp -n 10000 -c 100 -t 4 -k "http://our-web-site.com/"

  6.   tro sagde han

    Hej alle,
    Når jeg tegner grafen (fra CSV) med gnuplot, giver det mig følgende fejl, kan du fortælle mig, hvordan jeg løser det?

    "Plot.p", linje 8: advarsel: Springer datafilen over uden gyldige punkter

    plot «graph.csv» ved hjælp af 9 glat sbezier med linjetitel «AB - localhost / web»
    ^
    "Plot.p", linje 8: x-området er ugyldigt

    Kan jeg også generere HTML-sider med gnuplot?