Kako izraditi referentnu vrijednost izvedbe web poslužitelja?

Poznajete li prosječno vrijeme odziva na vašoj web stranici? Znate li koliko istodobnih korisnika vaša web stranica može obraditi?


Testiranje opterećenja bitno je da web aplikacije poznaju web mjesto kapacitet. Ako želite odabrati web poslužitelj, tada je jedna od prvih stvari koju želite učiniti izvršiti testiranje opterećenja i vidjeti koji od njih dobro radi.

Benchmarking vam može pomoći da odlučite;

  • Koji web poslužitelj najbolje radi
  • Broj poslužitelja koji su vam potrebni za posluživanje x broja zahtjeva
  • Koja konfiguracija daje najbolje rezultate

Postoji nekoliko internetskih alata za provođenje stresnog testa; Međutim, ako tražite interno rješenje ili želite usporediti samo izvedbu web poslužitelja, onda to možete koristiti ApacheBench i alternativno neke dolje navedene alate.

Koristila sam Apache & Nginx web poslužitelj na kojem se nalazi DigitalOcean da ga testiram.

ApacheBench

ApacheBench (ab) je program naredbenog retka otvorenog koda koji radi s bilo kojim web poslužiteljem. U ovom postu objasnit ću kako instalirati ovaj mali program i izvesti test opterećenja za usporedbu rezultata.

apaš

ApacheBench instalirajmo pomoću yum naredbe.

instalirajte httpd-alate

Ako već imate httpd alate, to možete ignorirati.

Sada, pogledajmo kako se to radi za 5000 zahtjeva s istovremenošću od 500.

[[E zaštićeni] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Ovo je ApacheBench, verzija 2.3 <$ Revizija: 655654 $>
Autorska prava 1996. Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licenciran na Apache Software Foundation, http://www.apache.org/
Usporedba lokalnog domaćina (budite strpljivi)
Ispunjeno 500 zahtjeva
Ispunjeno 1000 zahtjeva
Ispunjeno 1500 zahtjeva
Ispunjeno 2000 zahtjeva
Ispunjeno 2500 zahtjeva
Ispunjeno 3000 zahtjeva
Ispunjeno 3500 zahtjeva
Ispunjeno 4000 zahtjeva
Ispunjeno 4500 zahtjeva
Ispunjeno 5000 zahtjeva
Završeno 5000 zahtjeva
Softver za poslužitelj: Apache / 2.2.15
Naziv hosta poslužitelja: localhost
Port poslužitelja: 80
Put dokumenta: /
Duljina dokumenta: 4961 bajta
Razina konkurentnosti: 500
Vrijeme potrebno za testove: 13.389 sekundi
Popunjeni zahtjevi: 5000
Neuspjeli zahtjevi: 0
Pogreške pisanja: 0
Non-2xx odgovori: 5058
Ukupno preneseno: 26094222 bajta
Preneseni HTML: 25092738 bajtova
Zahtjevi u sekundi: 373,45 [# / sec] (srednja)
Vrijeme po zahtjevu: 1338.866 [ms] (znači)
Vrijeme po zahtjevu: 2.678 [ms] (znači, u svim istodobnim zahtjevima)
Brzina prijenosa: 1903.30 [Kbajti / sec] primljeno
Vreme povezivanja (ms)
minimalna srednja [+/- sd] srednja maks
Spajanje: 0 42 20,8 41 1000
Obrada: 0 428 2116.5 65 13310
Čekanje: 0 416 2117,7 55 13303
Ukupno: 51 470 2121,0 102 13378
Postotak zahtjeva podnesenih u određenom vremenu (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (najduži zahtjev)
[[E zaštićeni] +] #

Pa kao što vidite, Apache je riješio 373 zahtjeva u sekundi, a ukupno je bilo potrebno 13.389 sekundi da udovoljim ukupnim zahtjevima.

Sada znate da zadana konfiguracija može poslužiti za ove brojne zahtjeve, pa kada napravite bilo kakve promjene konfiguracije, možete napraviti test ponovo da biste usporedili rezultate i odabrali najbolje jedan.

Nginx

Napravimo test što smo napravili za Apache da biste mogli usporediti koji od njih je bolji.

[[E zaštićeni] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Ovo je ApacheBench, verzija 2.3 <$ Revizija: 655654 $>
Autorska prava 1996. Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licenciran na Apache Software Foundation, http://www.apache.org/
Usporedba lokalnog domaćina (budite strpljivi)
Ispunjeno 500 zahtjeva
Ispunjeno 1000 zahtjeva
Ispunjeno 1500 zahtjeva
Ispunjeno 2000 zahtjeva
Ispunjeno 2500 zahtjeva
Ispunjeno 3000 zahtjeva
Ispunjeno 3500 zahtjeva
Ispunjeno 4000 zahtjeva
Ispunjeno 4500 zahtjeva
Ispunjeno 5000 zahtjeva
Završeno 5000 zahtjeva
Poslužiteljski softver: nginx / 1.10.1
Naziv hosta poslužitelja: localhost
Port poslužitelja: 80
Put dokumenta: /
Duljina dokumenta: 3698 bajtova
Razina konkurentnosti: 500
Vrijeme potrebno za testove: 0.758 sekundi
Popunjeni zahtjevi: 5000
Neuspjeli zahtjevi: 0
Pogreške pisanja: 0
Ukupno preneseno: 19660000 bajtova
Preneseni HTML: 18490000 bajtova
Zahtjevi u sekundi: 6593,48 [# / sec] (srednja)
Vrijeme po zahtjevu: 75.832 [ms] (srednje)
Vrijeme po zahtjevu: 0,152 [ms] (znači, u svim istodobnim zahtjevima)
Brzina prijenosa: 25317,93 [Kbajti / sec] primljeno
Vreme povezivanja (ms)
minimalna srednja [+/- sd] srednja maks
Spajanje: 0 6 11,0 2 53
Obrada: 5 19 8,2 17 53
Čekanje: 0 18 8,2 16 47
Ukupno: 10 25 17,4 18 79
Postotak zahtjeva podnesenih u određenom vremenu (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (najduži zahtjev)
[[E zaštićeni] +] #

WOW! Jesi li vidio to? Nginx obrađuje 6593 zahtjeva u sekundi! Pobjednik.

Dakle, vidite samo usporedbom s dva web poslužitelja, dobit ćete ideju koju odabrati za svoju web aplikaciju.

Gore navedeni test nalazi se na CentOS 6.8, 64 bitnom. Možete isprobati više kombinacija OS-a & Verzija web servera za optimalne rezultate.

OPSADA

OPSADA je uslužni program za testiranje opterećenja HTTP koji se podržava na UNIX-u. Možete staviti više URL-ova u tekstualnu datoteku radi učitavanja testa. Možete instalirati opsadu koristeći yum.

# yum instalirajte opsadu

Ispunimo test s 500 istodobnih zahtjeva u trajanju od 5 sekundi.

[[E zaštićeni] ~] # opsada -q -t 5S -c 500 http: // localhost /
Podizanje opsade poslužitelja … završeno.
Transakcije: 4323 pregleda
Dostupnost: 100,00%
Proteklo vrijeme: 4,60 sek
Preneseni podaci: 15,25 MB
Vrijeme odgovora: 0.04 s
Brzina transakcije: 939,78 trans / sek
Propusnost: 3,31 MB / sek
Paralelnost: 37,97
Uspješne transakcije: 4323
Neuspjele transakcije: 0
Najduža transakcija: 1,04
Najkraća transakcija: 0,00
[[E zaštićeni] +] #

Za razvrstavanje parametara.

-q – pokrenuti ga tiho (ne prikazujući detalje zahtjeva)

-t – pokrenite 5 sekundi

-c – 500 istodobnih zahtjeva

Kao što vidite, dostupnost je 100%, a vrijeme odziva 0,04 sekunde. Parametar ispitivanja opterećenja možete podešavati na osnovu vašeg cilja.

Gobench

Gobench je napisan na Go jeziku i jednostavnim uslužnim programom za testiranje učitavanja za ocjenu performansi web poslužitelja. Podržava više od 20.000 istodobnih korisnika što ApacheBench nema.

Apache JMeter

JMeter jedan je od najpopularnijih alata otvorenog koda za mjerenje uspješnosti web aplikacija. JMeter je Java aplikacija i ne samo web poslužitelj, već je možete koristiti i protiv PHP-a, Jave. ASP.net, SOAP, REST itd.

JMeter je dobio pristojan prijateljski GUI, a za pokretanje aplikacije najnovija verzija 3.0 zahtijeva Java 7 ili noviju verziju. Morate pokušati s JMeterom ako je vaš cilj optimizirati performanse web aplikacija.

wrk

wrk je još jedan moderan alat za mjerenje performansi za postavljanje opterećenja na vaš web poslužitelj i za vrijeme kašnjenja, zahtjeva u sekundi, prijenosa u sekundi itd..

Pomoću wrk-a možete odrediti pokretanje testa opterećenja s više niti.

Uzmimo primjer pokretanja testa u trajanju od 5 minuta s 500 istodobnih korisnika s 8 niti.

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

HTTPLoad

Httpload može pročitati više URL-ova iz datoteke ili ga možete odrediti u naredbenom argumentu. Najnovija verzija podržava SSL / TLS što znači da možete upitati URL web stranice s omogućenom HTTPS (SSL).

Prilikom testiranja URL-a koji podržava SSL imate mogućnost navođenja šifre, a jednostavna naredba za testiranje izgledala bi ovako.

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

Da bismo ga bolje razumjeli, gore ćemo pokrenuti test sa 200 istodobnih korisnika tijekom 2 minute.

Curl-utovarivač

rotor-utovarivač je napisano na C da simulira opterećenje aplikacije, a podržava SSL / TLS. Uz testiranje web stranica, ovaj alat s otvorenim kodom možete koristiti i za izvođenje učitavanja na FTP poslužiteljima.

Možete stvoriti testni plan s kombinacijom HTTP-a, HTTPS-a, FTP-a i FTPS-a u jednoj serijskoj konfiguraciji..

httperf

httperf je alat visokih performansi koji se usredotočuje na referentnu vrijednost na mikro i makro razini. Podržava HTTP / 1.1 i SSL protokole.

Ako ste očekivali broj istodobnih korisnika i želite testirati može li broj zahtjeva poslužiti vaš web poslužitelj, tada možete koristiti sljedeću naredbu.

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

Gornja naredba testirat će sa 100 zahtjeva u sekundi za 1000 HTTP zahtjeva.

Tsung

Tsung je alata za testiranje otpornosti na stres s više protokola za stres HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL poslužitelj. Podržava HTTP / 1.0, HTTP / 1.1, a kolačići se automatski ručno upravljaju.

Stvaranje izvještaja izvedivo je kod tvrtke Tsung.

Zaključak

Nadam se gore alati za usporedbu dati vam predstavu o vašem radu na web poslužitelju i pomoći vam da odlučite što najbolje funkcionira 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