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.
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:
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
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/
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:
- Podatki strežnika, ki ga testiramo, in zadevni URL.
- Število prošenj na sekundo.
- 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 .
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:
- Ime slikovne datoteke, ki jo želite ustvariti
- Število skupnih in sočasnih zahtev.
- Ime datoteke, ki smo jo pravkar ustvarili.
- 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:
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!
Zanimivo merilo apache, nisem vedel za gnuplot, ali je mogoče spremeniti slog izhoda? Pravim kot za formalno poročilo.
Lep pozdrav iz Čila.
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
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
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 😉
Zelo zanimivo, še posebej za uporabo GNUPlot. Kolikor vidim, se lahko uporablja za ustvarjanje grafov iz skoraj katerega koli nabora podatkov, kajne? ...
Ja, seveda, podatke posredujete v datoteko, ločeno z vejicami ali kaj podobnega, v konfiguracijski datoteki mu poveste, kako naj to obdela, in voila
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.
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/"
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?