Nezáleží na tom, či sa používa Nginx, apache„Lighttpd alebo inak, ktorýkoľvek správca siete, ktorý má webový server, bude v určitom okamihu chcieť vedieť, ako rýchlo webový server reaguje na daný počet otázok.
Benchmark Apache + GNUPlot
Tentokrát použijeme nástroj s názvom Benchmark Apache, ktorý má síce vo svojom názve „apache“, ale NIE JE určený iba na meranie výkonu Apache, ale dá sa použiť aj pre Nginx a ďalšie. Vlastne to použijem na meranie výkonu Nginx.
Budeme tiež používať GNUPlot, ktoré nám pomôžu vytvoriť také grafy s niekoľkými riadkami:
Inštalácia Apache Benchmark a GNUPlot
Apache Benchmark je nástroj, ktorý môžeme použiť po nainštalovaní balíka Apache, GNUPlot bude k dispozícii po nainštalovaní rovnomenného balíka. Tak potom ...
V distribúciách ako Debian, Ubuntu alebo podobné:
sudo apt-get install apache2 gnuplot
V distribúciách ako ArchLinux alebo deriváty:
sudo pacman -S apache gnuplot
Používanie Apache Benchmark
Čo urobíme, je poslať konkrétny počet žiadostí (100) v skupinách po niekoľkých (od 20 do 20) na konkrétnu stránku. Výsledok uložíme do súboru .csv (result.csv) a potom ho spracujeme pomocou GNUPloit, riadok bude:
ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/
Toto je výstup alebo protokol, ktorý sa mi zobrazí, keď testujem web v sieti:
Toto je ApacheBench, verzia 2.3 <$ Revision: 1638069 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ s licenciou pre The Apache Software Foundation, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (buďte trpezliví) ..... hotovo Serverový softvér: nginx Názov hostiteľa servera: gutl.jovenclub.cu Port servera: 80 Cesta k dokumentu: / Dĺžka dokumentu: 206 bajtov Úroveň súbežnosti: 20 Čas potrebný na vykonanie testov: 0.101 sekundy Kompletné požiadavky: 100 Neúspešné požiadavky: 27 (pripojenie: 0, príjem: 0, dĺžka: 27, výnimky: 0) Non-2xx odpovede: 73 Celkovo prenesené: 1310933 bajtov prevedených HTML: 1288952 bajtov Žiadosti za sekundu: 993.24 [# / s] (priemer) Čas na požiadavku: 20.136 [ms] (priemer) Čas na požiadavku: 1.007 [ms] (priemer, pri všetkých súbežných požiadavkách) Rýchlosť prenosu: 12715.49 [Kbytov / s] prijatý Časy pripojenia (ms) min. Priemer [+/- sd] medián max Pripojenie: 0 1 0.2 1 1 Spracovanie: 1 17 24.8 4 86 Čakanie: 1 15 21.5 4 76 Celkom: 1 18 24.8 5 87 Percento doručených žiadostí v určitom čase (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87 100% 87 (najdlhšia požiadavka)
Červenou farbou som označil to, čo považujem za najdôležitejšie, čo bolo viac-menej:
- Údaje servera, ktorý testujeme, ako aj príslušná adresa URL.
- Počet žiadostí za sekundu.
- Koľko milisekúnd trvalo serveru, kým sa odpovedalo na požiadavku, ktorá trvala najdlhšie, teda na odpoveď, ktorá trvala najdlhšie.
S týmito informáciami môžu mať predstavu o tom, ako dlho bude trvať, kým sa server zúčastní na takom množstve požiadaviek, potom môžu pridať lepší systém vyrovnávacej pamäte, deaktivovať moduly, ktoré nepoužívajú, atď., Znova spustiť test a uvidíme, či sa výkon zlepšil alebo nie.
Ďalšie užitočné možnosti alebo parametre Apache Benchmark:
-k -H 'Prijať-kódovanie: gzip, vyfúknuť' : Týmto ab prijme vyrovnávaciu pamäť a kompresiu, ktoré nakonfiguroval server, takže časy budú kratšie.
-f adresy URL.txt : Takže namiesto toho, aby ste iba otestovali index webu, vykoná testy na adresách URL, ktoré zadáme v danom súbore.
Každopádne ... pozri sa na muž ab aby ste videli.
Zobraziť výsledok v grafe:
Ak chcete dať tento výstup do obrazu, to znamená do vizuálnejšieho média a mnohokrát je to všetko, čomu sa manažéri dokážu porozumieť ... na to použijeme, ako som už povedal predtým, GNUPlot
V rovnakom priečinku, kde máme súbor results.csv (pamätajte, že sme práve vygenerovali vyššie uvedený príkaz) vytvoríme súbor s názvom gnuplot.p:
nano plot.p
Vložíme doň toto:
nastaviť terminál veľkosť png 600 nastaviť výstup "výsledky.png"nastaviť názov"100 žiadosti, 20 súbežné požiadavky "nastaviť pomer strán 0.6 nastaviť mriežku a nastaviť xlabel"žiadosti"nastaviť ylabel"doba odozvy (ms)„zápletka“results.csv"použitie 9 hladkých sbezierov s nadpismi riadkov"gutl.jovenclub.cu"
Červenou farbou som označil, čo by ste mali vždy skontrolovať. Teda a zhora nadol:
- Názov obrazového súboru, ktorý sa má vygenerovať
- Počet celkových a súčasných požiadaviek.
- Názov súboru, ktorý sme práve vygenerovali.
- Doména, na ktorej pracujeme.
Akonáhle to dáme, uložíme a skončíme (Ctrl + O a potom Ctrl + X), vykonáme nasledujúce:
gnuplot plot.p
A voila, ktorá vygeneruje graf s požadovaným menom, môj je:
Apache Benchmark má oveľa viac možností, existuje tiež veľa kombinácií, ktoré môžeme použiť na dokončenie nášho testu výkonnosti.
Ale hej, toto bol základ 😉
Užite si to!
Zaujímavý benchmark apache, čo gnuplot nevedel, je možné upraviť štýl výstupu? Hovorím, že pokiaľ ide o formálnu správu.
Zdravím z Čile.
Áno, na internete je veľa konfigurácií pre gnuplot. Vyhľadajte pomocou Google a zistite, či nenájdete nejakého seriózneho alebo profesionálneho hráča na jeho použitie, pretože to je vkus každého 🙂
Hmmm, teraz to otestujem na virtuálnom serveri Apache, ktorý mám spustený, aby som zistil, ako to ide, pokiaľ ide o GUTL, pretože sa spúšťa veľmi rýchlo z 80 požiadaviek, však? Pozrime sa, že 100 ms nie sú nič, ale vysoká, ktorá dáva za 10 ďalších požiadaviek v porovnaní so 70 až 80 s 80 až 90, upúta moju pozornosť
Musí to byť kvôli frontu alebo počtu maximálnych vlákien, ktoré sa majú navštevovať súčasne. Test som však urobil bez gzipu, bez deflácie, bez cache alebo čohokoľvek iného 😉
Veľmi zaujímavé, hlavne pre použitie GNUPlot. Z toho, čo vidím, sa dá použiť na generovanie grafov z takmer ľubovoľnej množiny údajov, však? ...
Áno, samozrejme, údaje odovzdáte v súbore oddelenom čiarkami alebo podobne, v konfiguračnom súbore mu poviete, ako ich spracovať, a je to
Dobrý deň, vždy to trávim čítaním tohto blogu, ale nikdy som nekomentoval žiadny článok a zdá sa to ako dobrá príležitosť.
Chcem sa s vami podeliť o to, že tento typ grafu môže byť nesprávne interpretovaný, pretože Apache Bench triedi výsledok pomocou času (celkového času) namiesto sekvenčného času. Aj keď sú údaje stále pravdivé, graf pravdepodobne neukazuje to, čo chceme.
Tu je odkaz, kde som si to prečítal.
http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/
Zdravím.
Apache Benchmark nie je najlepším nástrojom na meranie výkonu serverov HTTP v počítačoch s viacerými jadrami, navyše iba 100 požiadaviek s 20 súbežnými pripojeniami je veľmi slabý test, niečo realistickejšie by bolo 1,000 10,000 alebo 100 10,000 požiadaviek so XNUMX súbežnými pripojeniami ( je známe, že Nginx je jednou z aplikácií schopných obslúžiť viac ako XNUMX XNUMX požiadaviek za sekundu) a na tento účel je lepšie použiť nástroj ako weighttp, ktorý je určený pre viacjadrové počítače a používa epoll, ktorý je na rozdiel od neho rýchlejší Apache Bench, ktorý používa jedno vlákno a menej efektívny mechanizmus vybavovania udalostí.
Aby som pochopil, že server má iba 4 jadrá:
weighttp -n 10000 -c 100 -t 4 -k "http://our-web-site.com/"
Ahoj všetkým,
Pri kreslení grafu (z CSV) pomocou programu gnuplot mi spôsobí nasledujúcu chybu, môžete mi povedať, ako to vyriešiť?
"Plot.p", riadok 8: varovanie: Preskočenie dátového súboru bez platných bodov
plot «graph.csv» pomocou 9 hladkých sbezier s nadpismi riadkov «AB - localhost / web»
^
„Plot.p“, riadok 8: rozsah x je neplatný
Môžem pomocou gnuplot tiež generovať stránky HTML?