Apache Benchmark + GNUPlot: Merajte a grafujte výkonnosť svojho webového servera

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.

Spravované-Služby-Správa-Servera-e1368625038693

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:

výsledky

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

Potrebujeme iba nainštalovať balíček Apache, nemusíme ho spúšťať ani nič iné konfigurovať, bude stačiť iba jeho inštalácia.

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/

Je veľmi dôležité uviesť konečnú adresu / do adresy URL stránky, ktorá sa má merať.

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:

  1. Údaje servera, ktorý testujeme, ako aj príslušná adresa URL.
  2. Počet žiadostí za sekundu.
  3. 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.

Odporúčam test spustiť dvakrát alebo trikrát, aby ste vytvorili niečo ako okraj, pretože výsledky dvoch testov za sebou sú zriedka identické.

Ď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:

  1. Názov obrazového súboru, ktorý sa má vygenerovať
  2. Počet celkových a súčasných požiadaviek.
  3. Názov súboru, ktorý sme práve vygenerovali.
  4. 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:

výsledky2

Koniec!

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!


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Francisco dijo

    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.

    1.    KZKG ^ Gaara dijo

      Á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 🙂

  2.   Wolf119 dijo

    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ť

    1.    KZKG ^ Gaara dijo

      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 😉

  3.   Charlie Brown dijo

    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? ...

    1.    KZKG ^ Gaara dijo

      Á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

  4.   Adolfo dijo

    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.

  5.   Hugo dijo

    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/"

  6.   viera dijo

    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?