Ako vykonať test výkonnosti webového servera?

Poznáte priemernú dobu odozvy svojich webových stránok? Viete, koľko súčasných používateľov dokáže vaše stránky zvládnuť?


Zaťaženie testovanie je nevyhnutné pre webové aplikácie poznať webové stránky kapacita. Ak si vyberiete webový server, jednou z prvých vecí, ktorú chcete urobiť, je vykonať záťažové testovanie a zistiť, ktorá z nich pre vás dobre funguje..

Benchmarking vám môže pomôcť rozhodnúť sa;

  • Ktorý webový server funguje najlepšie
  • Počet serverov, ktoré potrebujete obslúžiť x počet požiadaviek
  • Ktorá konfigurácia vám poskytne najlepšie výsledky

Existuje niekoľko online nástrojov na vykonanie záťažového testu; Ak však hľadáte interné riešenie alebo chcete porovnávať iba výkon webového servera, môžete ho použiť ApacheBench a alternatívne niektoré z nižšie uvedených nástrojov.

Použil som Apache & Hostený webový server Nginx DigitalOcean aby ste to vyskúšali.

ApacheBench

ApacheBench ab) je program príkazového riadku s otvoreným zdrojovým kódom, ktorý pracuje s akýmkoľvek webovým serverom. V tomto príspevku vysvetlím, ako nainštalovať tento malý program a vykonať záťažový test na porovnanie výsledkov.

apache

Poďme si nainštalovať ApacheBench pomocou príkazu yum.

yum nainštalujte httpd-tools

Ak už máte nástroje httpd, môžete to ignorovať.

Teraz sa pozrime, ako to vyhovuje pre 5 000 žiadostí so súčasnosťou 500.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Toto je ApacheBench, verzia 2.3 <Revízia: 655654 $>
Autorské práva 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licencované pre softvér Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (buďte trpezliví)
Dokončené 500 žiadostí
Dokončené 1 000 žiadostí
Dokončené 1 500 žiadostí
Dokončené 2 000 žiadostí
Dokončené 2 500 žiadostí
Dokončené 3 000 žiadostí
Dokončené 3500 žiadostí
Dokončené 4 000 žiadostí
Splnených 4500 žiadostí
Dokončené 5 000 žiadostí
Dokončené 5 000 žiadostí
Serverový softvér: Apache / 2.2.15
Názov hostiteľa servera: localhost
Port servera: 80
Cesta dokumentu: /
Dĺžka dokumentu: 4961 bajtov
Úroveň súčinnosti: 500
Čas potrebný na vykonanie skúšok: 13,389 sekúnd
Kompletné požiadavky: 5000
Neúspešné žiadosti: 0
Chyby pri zápise: 0
Ne-2xx odpovede: 5058
Celkovo prevedených: 26094222 bajtov
Prenesené HTML: 25092738 bajtov
Žiadosti za sekundu: 373,45 [# / s] (priemer)
Čas na vyžiadanie: 1338,866 [ms] (priemer)
Čas na požiadavku: 2,678 [ms] (stredná hodnota pre všetky súčasné žiadosti)
Prenosová rýchlosť: prijaté 1903,30 [Kbytes / sec]
Časy pripojenia (ms)
min. priemer [+/- sd] medián max
Pripojiť: 0 42 20,8 41 1000
Spracovanie: 0 428 2116,5 65 13310
Čaká sa: 0 416 2117,7 55 13303
Spolu: 51 470 2121,0 102 13378
Percentuálny podiel žiadostí doručených v určitom čase (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (najdlhšia požiadavka)
[[Email protected] ~] #

Ako vidíte, Apache to zvládol 373 žiadostí za sekundu, a vybaveniu všetkých žiadostí trvalo celkom 13 389 sekúnd.

Teraz viete, že predvolená konfigurácia môže vyhovieť týmto mnohým požiadavkám, takže keď vykonáte akékoľvek zmeny konfigurácie, môžete znova vykonať test, aby ste porovnali výsledky a vybrali najlepší jeden.

Nginx

Urobme test toho, čo sme pre Apache urobili, takže si môžete porovnať, ktorá z nich má lepšiu výkonnosť.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Toto je ApacheBench, verzia 2.3 <Revízia: 655654 $>
Autorské práva 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licencované pre softvér Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (buďte trpezliví)
Dokončené 500 žiadostí
Dokončené 1 000 žiadostí
Dokončené 1 500 žiadostí
Dokončené 2 000 žiadostí
Dokončené 2 500 žiadostí
Dokončené 3 000 žiadostí
Dokončené 3500 žiadostí
Dokončené 4 000 žiadostí
Splnených 4500 žiadostí
Dokončené 5 000 žiadostí
Dokončené 5 000 žiadostí
Serverový softvér: nginx / 1.10.1
Názov hostiteľa servera: localhost
Port servera: 80
Cesta dokumentu: /
Dĺžka dokumentu: 3698 bajtov
Úroveň súčinnosti: 500
Čas potrebný na vykonanie skúšok: 0,758 sekúnd
Kompletné požiadavky: 5000
Neúspešné žiadosti: 0
Chyby pri zápise: 0
Celkovo prevedených: 19660000 bajtov
HTML prenesené: 18490000 bajtov
Žiadosti za sekundu: 6593,48 [# / s] (priemer)
Čas na vyžiadanie: 75,832 [ms] (priemer)
Čas na požiadavku: 0,152 [ms] (stredná hodnota pre všetky súčasné žiadosti)
Prenosová rýchlosť: 25317,93 [Kbytes / sec] prijaté
Časy pripojenia (ms)
min. priemer [+/- sd] medián max
Pripojiť: 0 6 11,0 2 53
Spracovanie: 5 19 8,2 17 53
Čakanie: 0 18 8,2 16 47
Celkom: 10 25 17,4 18 79
Percentuálny podiel žiadostí doručených v určitom čase (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (najdlhšia požiadavka)
[[Email protected] ~] #

WOW! Videl si to? Nginx zvládol 6593 žiadostí za sekundu! Víťaz.

Takže pri porovnaní s dvoma webovými servermi získate predstavu, ktorý z nich si vyberiete pre svoju webovú aplikáciu.

Vyššie uvedený test je na CentOS 6,8, 64 bitov. Môžete skúsiť viac kombinácií OS & Verzia webového servera pre optimálne výsledky.

SIEGE

SIEGE je obslužný program HTTP load test podporovaný v systéme UNIX. Do textového súboru môžete vložiť viacero adries URL, na ktoré chcete načítať test. Obliehanie môžete nainštalovať pomocou yum.

# yum nainštalujte obliehanie

Spustime test s 500 súbežnými požiadavkami na 5 sekúnd.

[[Email protected] ~] # siege -q -t 5S -c 500 http: // localhost /
Zdvíha sa obliehanie servera … hotovo.
Transakcie: 4323 prístupov
Dostupnosť: 100,00%
Uplynutý čas: 4,60 s
Prenesené údaje: 15,25 MB
Čas odozvy: 0,04 sek
Miera transakcie: 939,78 trans / sec
Výkon: 3,31 MB / s
Súbežnosť: 37,97
Úspešné transakcie: 4323
Neúspešné transakcie: 0
Najdlhšia transakcia: 1,04
Najkratšia transakcia: 0,00
[[Email protected] ~] #

Rozdeliť parametre.

-q – ticho spustiť (nezobrazovať podrobnosti žiadosti)

-t – beh na 5 sekúnd

-c – 500 súbežných žiadostí

Ako vidíte, dostupnosť je 100% a čas odozvy 0,04 sekundy. Parameter testu zaťaženia môžete vyladiť na základe svojho cieľa.

Gobench

Gobench je napísaný v jazyku Go a jednoduchý nástroj na testovanie zaťaženia na porovnanie výkonnosti webového servera. Podporuje viac ako 20 000 súčasných používateľov, čo ApacheBench nemá.

Apache JMeter

JMeter je jedným z najpopulárnejších nástrojov s otvoreným zdrojom na meranie výkonnosti webových aplikácií. JMeter je aplikácia založená na Java, a to nielen webový server, ale môžete ho použiť aj proti PHP, Java. ASP.net, SOAP, REST atď.

JMeter dostal slušné GUI a najnovšia verzia 3.0 vyžaduje na spustenie aplikácie Java 7 alebo novšiu verziu. Ak je vaším cieľom optimalizovať výkon webových aplikácií, musíte skúsiť JMeter.

WRK

WRK je ďalší moderný nástroj na meranie výkonnosti, ktorý zaťaží váš webový server a dá vám latenciu, požiadavku za sekundu, prenos za sekundu atď..

Pomocou kľúča môžete určiť spustenie testu zaťaženia s počtom vlákien.

Urobme príklad spustenia testu na 5 minút s 500 súčasnými používateľmi s 8 vláknami.

wrk –t8 –c500 –d300s http: // localhost

HTTPLoad

Httpload dokáže prečítať viac URL zo súboru, alebo ich môžete zadať v argumente príkazu. Najnovšia verzia podporuje protokol SSL / TLS, čo znamená, že môžete zadať dotaz na adresu URL webovej stránky s povoleným protokolom HTTPS (SSL).

Pri testovaní adresy URL s povoleným SSL máte možnosť zadať šifru a jednoduchý testovací príkaz by vyzeral takto.

httpload – rozlišovač AES256-SHA – paralelný 200-sekundový 120 URL_LIST.txt

Aby ste to lepšie pochopili, vyššie uvedený test spustí proti 200 súbežným používateľom počas 2 minút.

Curl-nakladače

curl-nakladač je napísaný v jazyku C na simuláciu zaťaženia aplikácií a podporuje protokol SSL / TLS. Spolu s testom webovej stránky môžete tento nástroj s otvoreným zdrojovým kódom použiť aj na zaťaženie serverov FTP.

Môžete vytvoriť testovací plán so zmesou HTTP, HTTPS, FTP a FTPS v jednej dávkovej konfigurácii.

httperf

httperf je vysoko výkonný nástroj, ktorý sa zameriava na referenčnú úroveň na makro a makro úrovni. Podporuje protokoly HTTP / 1.1 a SSL.

Ak ste očakávali počet súbežných používateľov a chcete vyskúšať, či váš webový server môže vybaviť určitý počet žiadostí, môžete použiť nasledujúci príkaz.

httperf – server localhost –port 80 – num-conns 1000 –rate 100

Vyššie uvedený príkaz otestuje so 100 požiadavkami za sekundu na 1 000 HTTP požiadaviek.

Tsung

Tsung je multi-protokol distribuovaný stresový testovací nástroj na stres HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL server. Podporuje HTTP / 1.0, HTTP / 1.1 a cookies sú automaticky spracovávané.

Vyhotovenie správy je možné s Tsungom.

záver

Dúfam, že vyššie nástroje na porovnávanie poskytnúť vám predstavu o výkonnosti vášho webového servera a pomôcť vám rozhodnúť sa, čo bude pre váš projekt najlepšie.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map