„Apache Benchmark“ + GNUPlot: matuokite ir pavaizduokite žiniatinklio serverio našumą

Nesvarbu, ar jis naudojamas nginx, apache, „Lighttpd“ ar kitaip, bet kuris tinklo administratorius, turintis žiniatinklio serverį, tam tikru momentu norės sužinoti, kaip greitai žiniatinklio serveris atsako į nurodytą skaičių užklausų.

„Managed-Services-Server-Management-e1368625038693“

„Apache Benchmark“ + GNUPlot

Šį kartą naudosime įrankį, vadinamą Apache etalonas, kuris nors ir turi „apache“ savo pavadinime, NĖRA tik Apache našumui matuoti, bet taip pat gali būti naudojamas Nginx ir kitiems. Tiesą sakant, aš naudosiu jį vertindamas nginx.

Mes taip pat naudosime GNUPlot, kuris padės mums sukurti panašius grafikus su keliomis eilutėmis:

rezultatai

„Apache Benchmark“ ir „GNUPlot“ diegimas

„Apache Benchmark“ yra įrankis, kurį galime naudoti įdiegę „Apache“ paketą. GNUPlot bus galima įdiegus to paties pavadinimo paketą. Taigi tada ...

Skirtuose, pvz., „Debian“, „Ubuntu“ ar panašiuose:

sudo apt-get install apache2 gnuplot

Skirstomosiose vietose, tokiose kaip „ArchLinux“ ar dariniai:

sudo pacman -S apache gnuplot

Turime įdiegti tik „Apache“ paketą, nereikia jo paleisti ar nieko kito konfigūruoti, pakaks tik jo įdiegti.

Naudojant „Apache Benchmark“

Tai, ką mes padarysime, bus nusiųsti konkretų užklausų skaičių (100) grupėmis po kelias (nuo 20 iki 20) į konkrečią svetainę. Rezultatą išsaugosime .csv faile (result.csv) ir tada apdorosime naudodami GNUPloit, eilutė būtų:

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

Labai svarbu įvesti galutinį / į matuojamos svetainės URL.

Tai yra išvestis arba žurnalas, kuris man rodomas, kai bandau svetainę savo tinkle:

Tai ApacheBench versija 2.3 <$ Revision: 1638069 $> Autorinės teisės 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licencijuota „Apache Software Foundation“, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (būkite kantrūs) ..... padaryta

Serverio programinė įranga: nginx Serverio prieglobos pavadinimas: gutl.jovenclub.cu Serverio prievadas: 80

Dokumento kelias: /
Dokumento trukmė: 206 baitai Lygiagretumo lygis: 20 Testams skirtas laikas: 0.101 sekundės Užbaigtos užklausos: 100 Nepavykusios užklausos: 27 (Prisijungti: 0, Gauti: 0, Ilgis: 27, Išimtys: 0) Ne 2xx atsakymai: 73 Iš viso perkelta: 1310933 baitai HTML perkelti: 1288952 baitai
Užklausos per sekundę: 993.24 [# / sek.] (Vidurkis)
Laikas vienai užklausai: 20.136 [ms] (vidurkis) Laikas vienai užklausai: 1.007 [ms] (vidurkis visoms tuo pačiu metu pateiktoms užklausoms) Perdavimo greitis: 12715.49 [Kbaitai / sek.] Gautas ryšio laikas (ms) min. Vidurkis [+/- sd] mediana max Prisijungimas: 0 1 0.2 1 1 Apdorojimas: 1 17 24.8 4 86 Laukimas: 1 15 21.5 4 76 Iš viso: 1 18 24.8 5 87 Užklausų, pateiktų per tam tikrą laiką, procentinė dalis (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (ilgiausia užklausa)

Raudonai pažymėjau, ką laikau svarbiausiu dalyku, kuris buvo daugmaž:

  1. Testuojamo serverio duomenys ir aptariamas URL.
  2. Užklausų skaičius per sekundę.
  3. Kiek milisekundžių prireikė serverio, kad jis galėtų įvykdyti prašymą, kuris užtruko ilgiausiai, t. Y. Tą, į kurį atsakyta ilgiau.

Turėdami šią informaciją jie gali įsivaizduoti, per kiek laiko serveriui teks patenkinti tiek užklausų, tada jie gali pridėti geresnę talpyklos sistemą, deaktyvuoti nenaudojamus modulius ir pan., Iš naujo paleisti testą ir sužinoti, ar našumas pagerėjo, ar ne .

Aš rekomenduoju atlikti testą 2 ar 3 kartus, kad susidarytumėte panašų į skirtumą, nes retai dviejų bandymų iš eilės rezultatai yra vienodi.

Kitos naudingos „Apache Benchmark“ parinktys arba parametrai:

-k -H 'Priimti kodavimą: gzip, ištuštinti' : Naudodamiesi šia ab, priims serverio sukonfigūruotą talpyklą ir glaudinimą, todėl laikas bus mažesnis.

-f URL.txt : Taigi, užuot tik išbandžiusi svetainės indeksą, ji atliks URL, kuriuos nurodome tame faile, bandymus.

Šiaip ar taip ... pažvelk vyras ab kad tu pamatytum.

Rezultatą parodykite diagramoje:

Įterpti šią išvestį į vaizdą, ty į labiau vaizdinę terpę ir tiek kartų, yra viskas, ką valdytojams pavyksta suprasti ... tam naudosime, kaip sakiau anksčiau GNUPlot

Tame pačiame aplanke, kuriame turime failą results.csv (atminkite, kad mes tiesiog sugeneravome aukščiau pateiktą komandą) sukursime failą pavadinimu gnuplot.p:

nano plot.p

Į jį įdėsime:

nustatyti terminalo png dydį 600 nustatyti išvestį "rezultatai.png„nustatyti pavadinimą“100 prašymai, 20 lygiagrečios užklausos „nustatyti dydžio santykį 0.6 nustatyti tinklelį ir nustatyti xlabel“prašymus„set ylabel“atsako laikas (ms)„siužetas“rezultatai.csv"naudojant 9 sklandų sbezier su linijų pavadinimu"gutl.jovenclub.cu"

Raudonai pažymėjau tai, ką visada turėtumėte patikrinti. Tai yra ir iš viršaus į apačią:

  1. Generuojamo vaizdo failo pavadinimas
  2. Visų ir tuo pačiu metu pateiktų užklausų skaičius.
  3. Ką tik sugeneruoto failo pavadinimas.
  4. Domenas, kuriame dirbame.

Kai tai įdėsime, išsaugokite ir išeikite (Ctrl + O ir Ctrl + X), atliksime šiuos veiksmus:

gnuplot plot.p

O voila, tai sugeneruos grafiką su norimu pavadinimu, mano:

rezultatai2

Pabaiga!

„Apache Benchmark“ turi daug daugiau galimybių, taip pat yra daug derinių, kuriuos galime naudoti, kad mūsų našumo testas būtų dar išsamesnis.

Bet ei, tai buvo pagrindai 😉

Kurkime kartu!


9 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Franciskas sakė

    Įdomus „apache“ etalonas, aš nežinojau apie „gnuplot“, ar įmanoma modifikuoti išvesties stilių? Aš sakau kaip dėl oficialaus pranešimo.

    Sveikinimai iš Čilės.

    1.    KZKG ^ Gaara sakė

      Taip, tinkle yra daug konfigūracijų, skirtų „gnuplot“, ieškokite „Google“, norėdami sužinoti, ar rasite pakankamai rimtų ar profesionalių, kad galėtumėte juo naudotis, nes tai yra kiekvieno žmogaus skonis 🙂

  2.   Wolf119 sakė

    Ummm, aš dabar išbandysiu tai virtualiame apache serveryje, kurį paleisiu, kad sužinotumėte, kaip tai vyksta, atsižvelgiant į GUTL, nes jis labai greitai suveikia iš 80 užklausų, tiesa? Pažiūrėkime, kad 100 ms nėra Tai nėra niekas, tačiau mano dėmesį atkreipia aukšta, kuri pateikia dar 10 užklausų, palyginti su 70–80 su 80–90

    1.    KZKG ^ Gaara sakė

      Tai turi būti dėl eilės arba maksimalių siūlomų temų, kurias reikia lankyti vienu metu, skaičiaus. Tačiau testą atlikau be „gzip“, be defliacijos, be talpyklos ar nieko 😉

  3.   Čarlis Braunas sakė

    Labai įdomu, ypač naudojant GNUPlot. Iš to, ką matau, galima naudoti diagramų generavimui iš beveik bet kokio duomenų rinkinio, tiesa? ...

    1.    KZKG ^ Gaara sakė

      Taip, žinoma, jūs perduodate duomenis faile, atskirtame kableliais ar pan., Nurodote, kaip juos apdoroti konfigūracijos faile, ir voila

  4.   adolfo sakė

    Sveiki, aš visada praleidžiu laiką skaitydamas šį tinklaraštį, bet niekada nekomentavau jokio straipsnio, ir tai atrodo gera proga.
    Noriu pasidalinti su jumis, kad tokio tipo diagramas galima klaidingai interpretuoti, nes „Apache Bench“ rezultatą rūšiuoja naudodama ttime (bendras laikas), o ne nuoseklų laiką. Nors duomenys vis dar teisingi, grafike tikriausiai neparodoma, ko norime.
    Čia yra nuoroda, kur aš ją perskaičiau.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Sveikinimai.

  5.   Hugo sakė

    „Apache Benchmark“ nėra geriausias įrankis HTTP serverių našumui matuoti kompiuteriuose su keliais branduoliais, be to, tik 100 užklausų su 20 tuo pačiu metu esančių ryšių yra labai silpnas testas, realiau būtų 1,000 10,000 arba 100 10,000 užklausų su XNUMX vienu metu veikiančių ryšių (tai žinoma kad „Nginx“ yra viena iš programų, galinčių aptarnauti daugiau nei XNUMX XNUMX užklausų per sekundę), o tam geriau naudoti įrankį, pvz., „weighttp“, skirtą daugiagysliams kompiuteriams ir naudojančią greitesnį „epoll“, skirtingai nei „Apache Bench“, kuris naudoja vieną giją ir mažiau efektyvų įvykių tvarkymo mechanizmą.

    Manau, kad serveris turi tik 4 branduolius:

    weighttp -n 10000 -c 100 -t 4 -k "http://mūsų svetainė.com/"

  6.   tikėjimas sakė

    Sveiki visi,
    Kai braižau grafiką (iš CSV) naudodamas „gnuplot“, man kyla tokia klaida: ar galėtumėte pasakyti, kaip ją išspręsti?

    „Plot.p“, 8 eilutė: įspėjimas: praleidžiamas duomenų failas be galiojančių taškų

    nubraižykite «graph.csv» naudodami 9 sklandžius sbezierius su linijomis, pavadinimu «AB - localhost / web»
    ^
    „Plot.p“, 8 eilutė: x diapazonas neteisingas

    Ar naudodamas „gnuplot“ taip pat galiu sugeneruoti HTML puslapius?