Kako izvesti primerjavo uspešnosti spletnega strežnika?

Ali poznate povprečni odzivni čas vašega spletnega mesta? Ali veste, koliko sočasnih uporabnikov lahko obišče vaše spletno mesto?


Testiranje obremenitve je nujno, da spletne aplikacije poznajo spletno mesto zmogljivost. Če želite izbrati spletni strežnik, je ena prvih stvari, ki jo želite narediti, opraviti testiranje obremenitve in videti, katera vam ustreza.

Primerjalna analiza vam lahko pomaga pri odločitvi;

  • Kateri spletni strežnik deluje najbolje
  • Število strežnikov, ki jih potrebujete za posredovanje x število zahtev
  • Katera konfiguracija vam daje najboljše rezultate

Obstaja več spletnih orodij za izvajanje stresnega testa; če pa iščete interno rešitev ali želite primerjati le uspešnost spletnega strežnika, lahko uporabite ApacheBench ali pa nekatera spodaj navedena orodja.

Uporabil sem Apache & Spletni strežnik Nginx, ki ga gosti DigitalOcean da ga preizkusim.

ApacheBench

ApacheBench (ab) je program z odprto kodo ukazne vrstice, ki deluje s katerim koli spletnim strežnikom. V tej objavi bom razložil, kako namestiti ta majhen program in opraviti test obremenitve za primerjanje rezultatov.

Apač

Namestimo ApacheBench z ukazom yum.

yum namestite httpd-orodja

Če že imate orodja httpd, lahko to prezrete.

Zdaj pa si poglejmo, kako deluje za 5000 zahtevkov s sočasnostjo 500.

[[zaščitena e-pošta] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
To je ApacheBench, različica 2.3 <$ Revizija: 655654 $>
Avtorske pravice 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Ima licenco za programsko ustanovo Apache, http://www.apache.org/
Primerjava lokalnega doma (bodite potrpežljivi)
Izpolnjeno 500 zahtevkov
Izpolnjenih 1000 zahtevkov
Izpolnjeno 1500 zahtevkov
Izpolnjenih 2000 zahtevkov
Izpolnjenih 2500 zahtevkov
Izpolnjeno 3000 prošenj
Izpolnjeno 3500 zahtevkov
Izpolnjeno 4000 prošenj
Izpolnjeno 4500 zahtevkov
Izpolnjeno 5000 prošenj
Končanih 5000 prošenj
Strežniška programska oprema: Apache / 2.2.15
Ime gostitelja strežnika: localhost
Vrata strežnika: 80
Pot dokumenta: /
Dolžina dokumenta: 4961 bajtov
Raven sočasnosti: 500
Čas, potreben za teste: 13.389 sekund
Popolne zahteve: 5000
Neuspelih zahtev: 0
Napake pri pisanju: 0
Ne-2xx odgovori: 5058
Skupaj preneseno: 26094222 bajtov
Preneseni HTML: 25092738 bajtov
Zahteve na sekundo: 373,45 [# / sec] (srednje)
Čas na zahtevo: 1338.866 [ms] (srednje)
Čas na zahtevo: 2.678 [ms] (srednja vrednost za vse sočasne zahteve)
Hitrost prenosa: 1903.30 [Kbajtov / sek] prejetih
Čas povezave (ms)
min srednja vrednost [+/- sd] mediana maks
Povežite: 0 42 20,8 41 1000
Obdelava: 0 428 2116,5 65 13310
Čakanje: 0 416 2117,7 55 13303
Skupaj: 51 470 2121,0 102 13378
Odstotek zahtevkov, vročenih v določenem času (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (najdaljša zahteva)
[[zaščitena e-pošta] ~] #

Kot vidite, je Apache poskrbel 373 zahtevkov na sekundo, skupaj je bilo potrebnih 13.389 sekund, da je bilo mogoče vložiti skupno število zahtev.

Zdaj veste, da lahko privzeta konfiguracija postreže s temi številnimi prošnjami, tako da ko spremenite konfiguracijo, lahko ponovno preizkusite primerjavo rezultatov in izberete najboljši eno.

Nginx

Naredimo test, kaj smo storili za Apache, tako da lahko primerjate, katera deluje bolje.

[[zaščitena e-pošta] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
To je ApacheBench, različica 2.3 <$ Revizija: 655654 $>
Avtorske pravice 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Ima licenco za programsko ustanovo Apache, http://www.apache.org/
Primerjava lokalnega doma (bodite potrpežljivi)
Izpolnjeno 500 zahtevkov
Izpolnjenih 1000 zahtevkov
Izpolnjeno 1500 zahtevkov
Izpolnjenih 2000 zahtevkov
Izpolnjenih 2500 zahtevkov
Izpolnjeno 3000 prošenj
Izpolnjeno 3500 zahtevkov
Izpolnjeno 4000 prošenj
Izpolnjeno 4500 zahtevkov
Izpolnjeno 5000 prošenj
Končanih 5000 prošenj
Strežniška programska oprema: nginx / 1.10.1
Ime gostitelja strežnika: localhost
Vrata strežnika: 80
Pot dokumenta: /
Dolžina dokumenta: 3698 bajtov
Raven sočasnosti: 500
Čas, potreben za teste: 0,758 sekunde
Popolne zahteve: 5000
Neuspelih zahtev: 0
Napake pri pisanju: 0
Skupaj prenesenih: 19660000 bajtov
Preneseni HTML: 18490000 bajtov
Zahteve na sekundo: 6593,48 [# / sec] (srednje)
Čas na zahtevo: 75.832 [ms] (srednje)
Čas na zahtevo: 0,152 [ms] (srednja vrednost za vse sočasne zahteve)
Hitrost prenosa: 25317,93 [Kbajtov / sek] prejetih
Čas povezave (ms)
min srednja vrednost [+/- sd] mediana maks
Povežite se: 0 6 11,0 2 53
Obdelava: 5 19 8,2 17 53
Čakanje: 0 18 8,2 16 47
Skupaj: 10 25 17,4 18 79
Odstotek zahtevkov, vročenih v določenem času (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (najdaljša zahteva)
[[zaščitena e-pošta] ~] #

WOW! Ali si videl to? Nginx obravnava 6593 zahtevkov na sekundo! Zmagovalec.

Torej, če vidite samo primerjavo z dvema spletnima strežnikoma, boste dobili idejo, katerega izbrati za svojo spletno aplikacijo.

Zgoraj preizkušen je 64-bitni CentOS 6.8. Lahko poskusite z več kombinacijami OS & Različica spletnega strežnika za optimalne rezultate.

OBLEGANJE

OBLEGANJE je pripomoček za preizkus nalaganja HTTP, ki je podprt v UNIX-u. V besedilno datoteko lahko vstavite več naslovov URL, da se naloži test. Lahko namestite obleganje s pomočjo yum.

# yum namestite obleganje

Zaženimo test s 500 sočasnimi zahtevami 5 sekund.

[[zaščitena e-pošta] ~] # obleganje -q -t 5S -c 500 http: // localhost /
Končana je obleganje strežnika … končano.
Transakcije: 4323 zadetkov
Razpoložljivost: 100,00%
Pretekli čas: 4,60 sek
Preneseni podatki: 15,25 MB
Odzivni čas: 0,04 sek
Transakcijska hitrost: 939,78 trans / sec
Pretok: 3,31 MB / sek
Sočasnost: 37,97
Uspešne transakcije: 4323
Neuspelih transakcij: 0
Najdaljša transakcija: 1,04
Najkrajša transakcija: 0,00
[[zaščitena e-pošta] ~] #

Za razčlenitev parametrov.

-q – zaženite ga tiho (ne prikazuje podrobnosti o zahtevi)

-t – tecite 5 sekund

-c – 500 sočasnih zahtevkov

Kot vidite, je razpoložljivost 100%, odzivni čas pa 0,04 sekunde. Parameter preskusa obremenitve lahko prilagodite glede na vaš cilj.

Gobench

Gobench je napisan v jeziku Go in enostaven pripomoček za testiranje obremenitve, s katerim lahko primerjate delovanje spletnega strežnika. Podpira več kot 20.000 sočasnih uporabnikov, ki jih ApacheBench nima.

Apache JMeter

JMeter je eno najbolj priljubljenih odprtokodnih orodij za merjenje uspešnosti spletnih aplikacij. JMeter je aplikacija, ki temelji na javi in ​​ne samo na spletnem strežniku, ampak jo lahko uporabite tudi proti PHP, Java. ASP.net, SOAP, REST itd.

JMeter je dobil prijazen prijazen GUI, najnovejša različica 3.0 pa za zagon aplikacije zahteva Java 7 ali novejšo različico. Če je vaš cilj optimizirati uspešnost spletne aplikacije, morate poskusiti JMeter.

napisati

napisati je še eno moderno orodje za merjenje učinkovitosti, s katerim lahko naložite svoj spletni strežnik in vam dodeli zamude, zahtevo na sekundo, prenos na sekundo itd. podrobnosti.

Z wrk lahko določite, da zaženete preizkus obremenitve z več niti.

Vzemimo primer izvajanja testa 5 minut s 500 sočasnimi uporabniki z 8 niti.

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

HTTPLoad

Httpload lahko prebere več URL-jev iz datoteke ali pa jih podate v ukaznem argumentu. Najnovejša različica podpira SSL / TLS, kar pomeni, da lahko poiščete URL spletne strani, ki podpira HTTPS (SSL).

Pri preizkušanju URL-ja, ki podpira SSL, imate možnost določiti šifro in preprost ukazni test bi izgledal tako.

httpload -cipher AES256-SHA-paralelno 200-sekund 120 URL_LIST.txt

Da bi ga bolje razumeli, zgoraj preizkusite na 200 sočasnih uporabnikih 2 minuti.

Nakladalnik za curl

nakladalnik za curl je napisano na C, da simulira obremenitev aplikacije in podpira SSL / TLS. Skupaj s testom spletnih strani lahko to orodje z odprto kodo uporabite tudi za izvajanje nalaganja na FTP strežnike.

Ustvarite lahko preskusni načrt z mešanico HTTP, HTTPS, FTP in FTPS v eni sami paketni konfiguraciji.

httperf

The httperf je visokozmogljivo orodje, ki se osredotoča na merila na mikro in makro ravni. Podpira protokole HTTP / 1.1 in SSL.

Če ste pričakovali število sočasnih uporabnikov in želite preizkusiti, ali lahko vaš zahtevek vloži spletni strežnik, potem lahko uporabite naslednji ukaz.

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

Zgornji ukaz se bo preizkusil s 100 zahtevami na sekundo za 1000 zahtev HTTP.

Tsung

Tsung je orodje za testiranje stresnega testiranja z več protokoli za stres HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL strežnik. Podpira HTTP / 1.0, HTTP / 1.1, piškotki pa se samodejno obdelujejo.

Ustvarjanje poročila je izvedljivo s podjetjem Tsung.

Zaključek

Upam zgoraj orodja za primerjalno merjenje da vam predstavo o uspešnosti vašega spletnega strežnika in pomaga, da se odločite, kaj najbolje deluje za vaš projekt.

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