Apache Benchmark + GNUPlot: izmerite in grafično prikažite delovanje vašega spletnega strežnika

Ni pomembno, ali se uporablja Nginx, Apache, Lighttpd ali drug, bo vsak skrbnik omrežja, ki ima spletni strežnik, v določenem trenutku želel vedeti, kako hitro se spletni strežnik odzove na določeno število poizvedb.

Upravljane-storitve-strežnik-upravljanje-e1368625038693

Benchmark Apache + GNUPlot

Tokrat bomo uporabili orodje z imenom Benchmark Apache, ki ima v svojem imenu "apache", NI namenjen samo merjenju zmogljivosti Apacheja, temveč se lahko uporablja tudi za Nginx in druge. Pravzaprav ga bom uporabil za merjenje uspešnosti Nginx.

Uporabili bomo tudi GNUplot, ki nam bo pomagal narediti grafe, kot so ti, z nekaj vrsticami:

Rezultati

Namestitev Apache Benchmark in GNUPlot

Apache Benchmark je orodje, ki ga lahko uporabimo po namestitvi paketa Apache, GNUPlot bo na voljo po namestitvi istoimenskega paketa. Torej ...

Na distribucijskih sistemih, kot so Debian, Ubuntu ali podobni:

sudo apt-get install apache2 gnuplot

V distribucijah, kot je ArchLinux ali derivati:

sudo pacman -S apache gnuplot

Namestiti moramo le paket Apache, ni ga treba zagnati ali konfigurirati česar koli drugega, dovolj bo le njegova namestitev.

Uporaba Apache Benchmark

Naredili bomo določeno število zahtev (100) v skupinah po več (od 20 do 20) na določeno spletno mesto. Rezultat bomo shranili v datoteko .csv (result.csv) in ga nato obdelali z GNUPloit, vrstica bi bila:

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

Zelo pomembno je, da končni / vnesete v URL mesta, ki ga želite izmeriti.

To je izhod ali dnevnik, ki se prikaže, ko preizkusim spletno mesto v svojem omrežju:

To je ApacheBench, različica 2.3 <$ Revision: 1638069 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licenca The Apache Software Foundation, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (bodite potrpežljivi) ..... končano

Strežniška programska oprema: nginx Ime strežnika: gutl.jovenclub.cu Strežniška vrata: 80

Pot dokumenta: /
Dolžina dokumenta: 206 bajtov Stopnja sočasnosti: 20 Čas, potreben za teste: 0.101 sekunde Dokončane zahteve: 100 Neuspele zahteve: 27 (Povezava: 0, prejem: 0, dolžina: 27, izjeme: 0) Odgovori, ki niso 2xx: 73 Skupaj prenesenih: 1310933 bajtov Preneseni HTML: 1288952 bajtov
Zahteve na sekundo: 993.24 [# / sek] (povprečje)
Čas na zahtevo: 20.136 [ms] (povprečje) Čas na zahtevo: 1.007 [ms] (povprečje za vse sočasne zahteve) Hitrost prenosa: 12715.49 [Kbytes / sec] prejetih Časovne povezave (ms) min povprečno [+/- sd] srednja vrednost max Povezava: 0 1 0.2 1 1 Obdelava: 1 17 24.8 4 86 Čakanje: 1 15 21.5 4 76 Skupaj: 1 18 24.8 5 87 Odstotek vročitev v določenem času (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (najdaljša zahteva)

Z rdečo barvo sem označil tisto, kar se mi zdi najbolj pomembno, kar je bilo bolj ali manj:

  1. Podatki strežnika, ki ga testiramo, in zadevni URL.
  2. Število prošenj na sekundo.
  3. Koliko milisekund je strežnik potreboval, da se je udeležil zahteve, ki je trajala najdlje, torej tiste, ki je najdlje odgovarjala.

S temi informacijami si lahko predstavljajo, kako dolgo bo trajalo, da bo strežnik prisostvoval tolikšnemu številu zahtev, nato pa lahko dodajo boljši sistem predpomnilnika, deaktivirajo module, ki jih ne uporabljajo itd. Itd., Ponovijo preizkus in preverijo, ali se je zmogljivost izboljšala .

Priporočam, da test preizkusite dvakrat ali trikrat, tako da ustvarite nekaj takega kot rob, saj so rezultati dveh testov zaporedoma redko enaki.

Druge uporabne možnosti ali parametri Apache Benchmark:

-k -H 'Sprejmi-kodiraj: gzip, izprazni' : S tem ab bo sprejel predpomnilnik in stiskanje, ki jih je konfiguriral strežnik, zato bodo časi krajši.

-f urls.txt : Torej, namesto da bi samo preizkusil indeks spletnega mesta, bo izvedel teste na URL-jih, ki jih določimo v tej datoteki.

Kakorkoli ... poglejte si človek ab da boste videli.

Rezultat prikažite v grafu:

Če ta izhod postavimo v sliko, torej v bolj vizualni medij in to večkrat, je vse, kar upravniki uspe razumeti ... za to bomo uporabili, kot sem že rekel, GNUplot

V isti mapi, kjer imamo datoteko results.csv (ne pozabite, pravkar smo ustvarili z zgornjim ukazom) ustvarili bomo datoteko z imenom gnuplot.p:

nano plot.p

Vanj bomo postavili naslednje:

nastavite terminal velikost png 600 nastavite izhod "results.png"nastavi naslov"100 zahteve, 20 sočasne zahteve "nastavi razmerje velikosti 0.6 nastavi mrežo in nastavi xlabel"zahtevami"nastavi ylabel"odzivni čas (ms)"zaplet"rezultati.csv"z uporabo 9 gladkih sbezierjev z naslovom vrstic"gutl.jovenclub.cu"

Z rdečo sem označil, kaj morate vedno preveriti. To je in od zgoraj navzdol:

  1. Ime slikovne datoteke, ki jo želite ustvariti
  2. Število skupnih in sočasnih zahtev.
  3. Ime datoteke, ki smo jo pravkar ustvarili.
  4. Domena, na kateri delamo.

Ko to vstavimo, shranimo in zapremo (Ctrl + O in potem Ctrl + X), izvedli bomo naslednje:

gnuplot plot.p

In voila, ki bo ustvaril graf z želenim imenom, je moj:

rezultati2

Konec!

Apache Benchmark ima veliko več možnosti, obstaja pa tudi veliko kombinacij, s katerimi lahko naš test učinkovitosti naredimo še bolj popolnega.

Ampak hej, to je bilo osnovno 😉

Uživajte!


9 komentarja, pustite svojega

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Francisco je dejal

    Zanimivo merilo apache, nisem vedel za gnuplot, ali je mogoče spremeniti slog izhoda? Pravim kot za formalno poročilo.

    Lep pozdrav iz Čila.

    1.    KZKG ^ Gaara je dejal

      Ja, v spletu je veliko konfiguracij za gnuplot, poiščite Google, če se vam zdi dovolj resen ali dovolj profesionalen, da ga lahko uporabite, kajti to je okus vsakogar

  2.   Wolf119 je dejal

    Ummm, zdaj ga bom preizkusil na navideznem strežniku apache, ki ga izvajam, da vidim, kako to poteka glede na GUTL, saj se zelo hitro sproži iz 80 zahtev, kajne? Poglejmo, da 100 ms ne Niso nič, toda pozornost, ki jo daje 10 dodatnih zahtev v primerjavi z 70 do 80 z 80 do 90, pritegne mojo pozornost

    1.    KZKG ^ Gaara je dejal

      To mora biti posledica čakalne vrste ali števila največjih niti, ki se jih je treba hkrati udeležiti. Vendar sem test opravil brez gzip-a, brez izpraznitve, brez predpomnilnika ali česar koli drugega 😉

  3.   Charlie Brown je dejal

    Zelo zanimivo, še posebej za uporabo GNUPlot. Kolikor vidim, se lahko uporablja za ustvarjanje grafov iz skoraj katerega koli nabora podatkov, kajne? ...

    1.    KZKG ^ Gaara je dejal

      Ja, seveda, podatke posredujete v datoteko, ločeno z vejicami ali kaj podobnega, v konfiguracijski datoteki mu poveste, kako naj to obdela, in voila

  4.   Adolfo je dejal

    Pozdravljeni, vedno ga porabim za branje tega spletnega dnevnika, vendar še nikoli nisem komentiral nobenega članka in to se mi zdi dobra priložnost.
    Z vami želim deliti, da je tovrstni graf mogoče napačno interpretirati, ker Apache Bench razvrsti rezultat z uporabo ttime (skupni čas) namesto zaporednega časa. Čeprav podatki še vedno držijo, graf verjetno ne prikazuje, kaj želimo.
    Tu je povezava, kjer sem jo prebrala.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Lep pozdrav.

  5.   Hugo je dejal

    Apache Benchmark ni najboljše orodje za merjenje zmogljivosti strežnikov HTTP v računalnikih z več jedri, poleg tega je le 100 zahtev z 20 sočasnimi povezavami zelo šibek test, nekaj bolj realnega bi bilo 1,000 ali 10,000 zahtev s 100 sočasnimi povezavami (znano je, da je Nginx ena od aplikacij, ki lahko postreže več kot 10,000 zahtev na sekundo), zato je bolje uporabiti orodje, kot je weighttp, ki je zasnovano za večjedrne računalnike in uporablja epoll, ki je hitrejši, za razliko od Apache Bench, ki uporablja eno nit in manj učinkovit mehanizem za obdelavo dogodkov.

    Če se strinjam s tem, če predpostavimo, da ima strežnik samo 4 jedra:

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

  6.   vera je dejal

    Pozdravljeni vsi,
    Ko risam graf (iz CSV) z gnuplotom, se mi pojavi naslednja napaka, ali mi lahko poveste, kako jo rešiti?

    "Plot.p", vrstica 8: opozorilo: Preskoči podatkovno datoteko brez veljavnih točk

    narišite «graph.csv» z uporabo 9 gladkih sbezierjev z naslovom vrstic «AB - localhost / web»
    ^
    "Plot.p", vrstica 8: obseg x ni veljaven

    Ali lahko z gnuplotom ustvarim tudi strani HTML?