Det spiller ingen rolle om den brukes Nginx, Apache, Lighttpd eller annet, vil enhver nettverksadministrator som har en webserver på et eller annet tidspunkt ønsker å vite hvor raskt webserveren reagerer på et gitt antall spørsmål.
Apache Benchmark + GNUPlot
Denne gangen vil vi bruke et verktøy som heter Apache-målestokk, som selv om den har 'apache' i navnet, IKKE er bare for å måle Apache-ytelse, men kan også brukes til Nginx og andre. Egentlig vil jeg bruke den til å måle ytelsen til Nginx.
Vi vil også bruke GNUPlot, som vil hjelpe oss med å lage grafer som disse med noen få linjer:
Installere Apache Benchmark og GNUPlot
Apache Benchmark er et verktøy som vi kan bruke etter installasjon av Apache-pakken, GNUPlot vil være tilgjengelig etter installasjon av pakken med samme navn. Så da ...
På distros som Debian, Ubuntu eller lignende:
sudo apt-get install apache2 gnuplot
I distros som ArchLinux eller derivater:
sudo pacman -S apache gnuplot
Vi trenger bare å installere Apache-pakken, vi trenger ikke å starte den eller konfigurere noe annet, bare å installere den vil være nok.
Bruke Apache Benchmark
Det vi skal gjøre er å sende et spesifikt antall forespørsler (100) i grupper på flere (fra 20 til 20) til et bestemt nettsted. Vi lagrer resultatet i en .csv-fil (result.csv) og behandler det deretter med GNUPloit, linjen vil være:
ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/
Det er veldig viktig å sette den endelige / i URL-en til nettstedet som skal måles.
Dette er utdata eller logg som viser meg når jeg tester et nettsted i nettverket mitt:
Dette er ApacheBench, versjon 2.3 <$ Revisjon: 1638069 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Lisensiert til Apache Software Foundation, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (vær tålmodig) ..... ferdig
Serverprogramvare: nginx Server Vertsnavn: gutl.jovenclub.cu Serverport: 80Dokumentbane: /
Dokumentlengde: 206 byte Samtidig nivå: 20 Tiden tatt for tester: 0.101 sekunder Komplette forespørsler: 100 Mislyktes forespørsler: 27 (Koble til: 0, Mottak: 0, Lengde: 27, Unntak: 0) Svar som ikke er 2xx: 73 Overført totalt: 1310933 byte HTML overført: 1288952 byte
Forespørsler per sekund: 993.24 [# / sek] (gjennomsnitt)
Tid per forespørsel: 20.136 [ms] (gjennomsnitt) Tid per forespørsel: 1.007 [ms] (gjennomsnitt, på tvers av alle samtidige forespørsler) Overføringshastighet: 12715.49 [Kbytes / sek] mottatt Tilkoblingstider (ms) min gjennomsnitt [+/- sd] median max Koble til: 0 1 0.2 1 1 Behandling: 1 17 24.8 4 86 Venter: 1 15 21.5 4 76 Totalt: 1 18 24.8 5 87 Prosentandel av forespørslene som serveres innen en viss tid (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (lengste forespørsel)
Jeg har merket med rødt det jeg anser for å være det viktigste, som har vært mer eller mindre:
Data om serveren vi tester, samt den aktuelle URL-en.
Antall forespørsler per sekund.
Hvor mange millisekunder tok serveren for å ivareta forespørselen som tok lengst tid, det vil si den som tok lengst tid å bli besvart.
Med denne informasjonen kan de få en ide om hvor lang tid det vil ta for serveren å delta på den mengden forespørsler, de kan deretter legge til et bedre cache-system, deaktivere moduler som de ikke bruker, etc etc, kjøre testen på nytt og se om ytelsen er forbedret eller ikke.
Jeg anbefaler å kjøre testen 2 eller 3 ganger, slik at du lager noe som en margin, siden resultatene av to tester på rad sjelden er identiske.
Andre nyttige Apache-standardalternativer eller parametere:
-k -H 'Accept-Encoding: gzip, deflate' : Med denne aksepterer ab hurtigbufferen og komprimeringen som serveren har konfigurert, så tidene blir lavere.
-f urls.txt : Så i stedet for bare å teste nettstedets indeks, vil den utføre tester på URL-ene som vi spesifiserer i den filen.
Uansett ... ta en titt på mann ab for deg å se.
Vis resultatet i en graf:
Å sette denne utgangen i et bilde, det vil si i et mer visuelt medium og som mange ganger, er alt ledere klarer å forstå ... for dette vil vi bruke som jeg sa tidligere, GNUPlot
I samme mappe der vi har filresultatene.csv (husk, vi genererte nettopp med kommandoen ovenfor) vi skal lage en fil som heter gnuplot.p:
nano plot.p
I den vil vi sette følgende:
sett terminal png størrelse 600 sett utgang "results.png"sett tittel"100 forespørsler, 20 samtidige forespørsler "sett størrelsesforhold 0.6 sett rutenett og sett xlabel"forespørsler"sett ylabel"responstid (ms)"plott"results.csv"bruker 9 glatt sbezier med linjetittel"gutl.jovenclub.cu"
Jeg har merket med rødt hva du alltid bør sjekke. Det vil si og fra topp til bunn:
Navnet på bildefilen som skal genereres
Antall forespørsler totalt og samtidig.
Navnet på filen vi nettopp genererte.
Domene vi jobber med.
Når vi setter det inn, lagrer og avslutter (Ctrl + O y luego Ctrl + X), vil vi utføre følgende:
gnuplot plot.p
Og voila, som vil generere grafen med ønsket navn, min er:
Slutten!
Apache Benchmark har mange flere alternativer, det er også mange kombinasjoner som vi kan bruke for å gjøre ytelsestesten vår enda mer komplett.