Apache Benchmark + GNUPlot: Méri és ábrázolja a webkiszolgáló teljesítményét

Nem számít, hogy használják-e nginx, Apache, Lighttpd vagy más, bármely hálózati rendszergazda, akinek van webkiszolgálója, egy bizonyos ponton tudni szeretné, hogy a webkiszolgáló milyen gyorsan reagál egy adott számú lekérdezésre.

Managed-Services-Server-Management-e1368625038693

Apache benchmark + GNUPlot

Ezúttal egy úgynevezett eszközt fogunk használni Apache benchmark, amely bár a nevében 'apache' van, NEM csak az Apache teljesítményének mérésére szolgál, hanem Nginx és mások számára is használható. Valójában a teljesítményének mérésére használom nginx.

Mi is használni fogjuk GNUPlot, ami segít nekünk néhány sorral hasonló grafikonok készítésében:

eredmények

Az Apache Benchmark és a GNUPlot telepítése

Az Apache Benchmark egy olyan eszköz, amelyet az Apache csomag telepítése után használhatunk, a GNUPlot az azonos nevű csomag telepítése után lesz elérhető. Így aztán ...

Az olyan disztrókon, mint a Debian, az Ubuntu vagy hasonló:

sudo apt-get install apache2 gnuplot

Olyan disztribúciókban, mint az ArchLinux vagy származékai:

sudo pacman -S apache gnuplot

Csak az Apache csomagot kell telepítenünk, nem kell elindítanunk vagy konfigurálnunk mást, elég lesz csak a telepítése.

Az Apache Benchmark használata

Amit meg fogunk tenni, egy meghatározott számú kérést (100) küldünk egy csoportba (20-tól 20-ig) egy adott webhelyre. Az eredményt egy .csv fájlba (result.csv) mentjük, majd a GNUPloit segítségével feldolgozzuk, a sor a következő lenne:

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

Nagyon fontos, hogy a végső / a mérendő webhely URL-jébe kerüljön.

Ez az a kimenet vagy napló mutatja meg, amikor tesztelek egy webhelyet a hálózatomon:

Ez az ApacheBench verziója 2.3 <$ Revision: 1638069 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Az Apache Software Foundation licenceltje, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (légy türelmes) ..... kész

Kiszolgálószoftver: nginx Kiszolgálónév: gutl.jovenclub.cu Kiszolgálóport: 80

Dokumentum elérési útja: /
Dokumentum hossza: 206 bájt Párhuzamossági szint: 20 A tesztekhez szükséges idő: 0.101 másodperc Teljes kérések: 100 Sikertelen kérések: 27 (Csatlakozás: 0, Fogadás: 0, Hossz: 27, Kivételek: 0) Nem 2xx válaszok: 73 Összes átvitel: 1310933 bájt HTML átvitele: 1288952 bájt
Kérelmek másodpercenként: 993.24 [# / sec] (átlag)
Kérésenkénti idő: 20.136 [ms] (átlag) Kérésenként töltött idő: 1.007 [ms] (átlag, az összes egyidejű kérés esetén) Átviteli sebesség: 12715.49 [kbyte / sec] fogadott csatlakozási idő (ms) min átlag [+/- sd] medián max Csatlakozás: 0 1 0.2 1 1 Feldolgozás: 1 17 24.8 4 86 Várakozás: 1 15 21.5 4 76 Összesen: 1 18 24.8 5 87 A meghatározott időn belül kiszolgált kérelmek százaléka (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (leghosszabb kérés)

Pirossal jelöltem meg azt, amit a legfontosabbnak tartok, ami többé-kevésbé:

  1. Az általunk tesztelt szerver adatai, valamint a kérdéses URL.
  2. Kérelmek száma másodpercenként.
  3. Hány ezredmásodpercet vett igénybe a kiszolgáló a leghosszabb ideig tartó kérelem kiszolgálására, vagyis arra, amelyre a leghosszabb válasz volt.

Ezekkel az információkkal képet kaphatnak arról, hogy mennyi időbe telik, amíg a szerver eleget tesz az ilyen mennyiségű kérésnek, majd hozzáadhatnak egy jobb gyorsítótár-rendszert, deaktiválhatják azokat a modulokat, amelyeket nem használnak, stb. Stb., Futtathatják újra a tesztet és hátha javult a teljesítmény vagy sem.

Javaslom a teszt 2 vagy 3 alkalommal történő futtatását, hogy valami hasonlót hozzon létre, mint egy margó, mert ritkán egymás után két teszt eredménye azonos.

Egyéb hasznos Apache benchmark opciók vagy paraméterek:

-k -H 'Elfogadás-kódolás: gzip, deflate' : Ezzel ab elfogadja a kiszolgáló által konfigurált gyorsítótárat és tömörítést, így az idők alacsonyabbak lesznek.

-f urls.txt : Tehát ahelyett, hogy tesztelné a webhely indexét, teszteket hajt végre az abban a fájlban megadott URL-eken.

Különben is ... vessen egy pillantást férfi ab hogy lássa.

Az eredmény megjelenítése grafikonon:

Ahhoz, hogy ezt a kimenetet képbe, vagyis vizuálisabb közegbe helyezzük, és annyiszor, a menedzsereknek mindent meg kell érteniük ... ehhez fogjuk használni, amint azt korábban mondtam, GNUPlot

Ugyanabban a mappában, ahol az eredmények.csv (ne feledje, hogy csak a fenti paranccsal generáltuk) létrehozunk egy gnuplot.p nevű fájlt:

nano plot.p

Ebben a következőket tesszük:

set terminal png méret 600 set output "results.png"set title"100 kérések, 20 egyidejű kérések "set size ratio 0.6 set grid and set xlabel"kérelmek"set ylabel"válaszidő (ms)"cselekmény"eredmények.csv"9 sima sbezier használata vonallal"gutl.jovenclub.cu"

Piros színnel jeleztem, amit mindig ellenőrizni kell. Vagyis fentről lefelé:

  1. A létrehozandó képfájl neve
  2. Az összes és egyidejű kérelem száma.
  3. Az imént létrehozott fájl neve.
  4. Domain, amelyen dolgozunk.

Miután ezt bevittük, mentse és lépjen ki (Ctrl + O majd Ctrl + X), a következőket hajtjuk végre:

gnuplot plot.p

És voila, ez generálja a kívánt névvel ellátott grafikont, az enyém:

eredmények2

Vége!

Az Apache Benchmarknak sokkal több lehetősége van, sok olyan kombináció is létezik, amelyekkel még teljesebbé tehetjük a teljesítménytesztünket.

De hé, ez volt az alapok 😉

Enjoy!


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Francisco dijo

    Érdekes apache benchmark, nem tudtam a gnuplot-ról, módosítható-e a kimenet stílusa? Azt mondom, ami a hivatalos jelentést illeti.

    Üdvözlet Chiléből.

    1.    KZKG ^ Gaara dijo

      Igen, sok konfiguráció van a neten a gnuplot számára, keressen rá a Google-ra, hátha talál elég komoly vagy profi embert a használatához, mert ez mindenki ízlése 🙂

  2.   Wolf119 dijo

    Ummm, most tesztelni fogom egy virtuális apache szerveren, amelyet futok, hogy lássam, hogyan megy ez a GUTL vonatkozásában, mivel 80 kérésből nagyon gyorsan elindul, igaz? Lássuk, hogy 100 ms nem semmi, de az a magas, amely 10 további kérést ad meg a 70–80 és a 80–90 közötti értékhez képest, felhívja a figyelmemet

    1.    KZKG ^ Gaara dijo

      Ennek annak a sornak vagy a maximális szálaknak kell lennie, amelyek egyidejűleg részt vesznek. A tesztet azonban gzip nélkül, deflate nélkül, gyorsítótár vagy bármi más nélkül végeztem 😉

  3.   Charlie Brown dijo

    Nagyon érdekes, különösen a GNUPlot használata szempontjából. Úgy látom, hogy szinte bármilyen adatkészletből grafikonok készítésére használható, igaz?

    1.    KZKG ^ Gaara dijo

      Igen, természetesen vesszővel elválasztott fájlban adja át az adatokat, vagy ilyesmi, megmondja, hogyan kell feldolgozni a konfigurációs fájlban, és voila

  4.   Adolfo dijo

    Helló, mindig a blog olvasásával töltem az időmet, de még soha nem kommentáltam egyetlen cikket sem, és ez jó lehetőségnek tűnik.
    Azt szeretném megosztani veletek, hogy az ilyen típusú grafikonokat félre lehet értelmezni, mert az Apache Bench az eredményt a szekvenciális idő helyett a ttime (teljes idő) felhasználásával rendezi. Bár az adatok még mindig igazak, a grafikon valószínűleg nem azt mutatja, amit akarunk.
    Itt van a link, ahol olvastam.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Üdvözlet.

  5.   Hugo dijo

    Az Apache Benchmark nem a legjobb eszköz a HTTP szerverek teljesítményének mérésére több maggal rendelkező számítógépeken, ráadásul csak 100 kérés 20 egyidejű kapcsolattal nagyon gyenge teszt, valami reálisabb 1,000 vagy 10,000 100 kérés lenne 10,000 egyidejű kapcsolattal ( ismert, hogy a Nginx egyike azoknak az alkalmazásoknak, amelyek másodpercenként több mint XNUMX XNUMX kérést képesek kiszolgálni), ehhez pedig jobb, ha olyan eszközt használunk, mint a weighttp, amelyet többmagos számítógépekhez terveztek, és az Apache-tól eltérően gyorsabb epoll-t használnak Pad, amely egyetlen szálat és kevésbé hatékony eseménykezelő mechanizmust használ.

    Feltéve, hogy a kiszolgálónak csak 4 magja van:

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

  6.   hit dijo

    Hi all,
    Amikor a grafikont (a CSV-ből) a gnuplot segítségével rajzolom, a következő hibát kapom, meg tudnád mondani, hogyan kell megoldani?

    "Plot.p", 8. sor: figyelmeztetés: Adatfájl kihagyása érvényes pontok nélkül

    ábrázolja a «graph.csv» elemet 9 sima sbezier használatával az «AB - localhost / web» sorokkal
    ^
    "Plot.p", 8. sor: x tartomány érvénytelen

    A gnuplot segítségével generálhatok HTML oldalakat is?