Hogyan hajthatjuk végre a webszerver teljesítményét?

Ismeri a webhely átlagos válaszidejét? Tudja, hogy hány egyidejű felhasználó képes kezelni az Ön webhelyét??


A terhelés tesztelése elengedhetetlen ahhoz, hogy a webes alkalmazások megismerjék a weboldalt kapacitás. Ha a webszervert választja, akkor az egyik első lépés, amelyet elvégez a terhelés tesztelése, és megnézheti, melyik működik az Ön számára.

A benchmarking segíthet a döntésben;

  • Melyik webszerver működik a legjobban
  • A kiszolgálók száma x kiszolgálás igényléséhez
  • Melyik konfiguráció biztosítja a legjobb eredményt

Számos online eszköz létezik a stresszteszt elvégzéséhez; Ha azonban házon belüli megoldást keres, vagy csak a webszerver teljesítményét szeretné összehasonlítani, akkor használhatja ApacheBench és alternatívaként az alább felsorolt ​​eszközök közül néhány.

Apache-t használtam & Nginx webszerver üzemeltetett DigitalOcean tesztelni.

ApacheBench

ApacheBench (ab) egy nyílt forráskódú parancssori program, amely bármilyen webszerverrel működik. Ebben a bejegyzésben elmagyarázom, hogyan kell telepíteni ezt a kis programot, és hogyan kell elvégezni a terhelési tesztet az eredmények összehasonlításához.

Apache

Telepítsük az ApacheBench-et egy yum paranccsal.

yum install httpd-tools

Ha már rendelkezik httpd-eszközökkel, akkor ezt figyelmen kívül hagyhatja.

Most nézzük meg, hogyan teljesít 5000 kérelemre, 500 egyidejűleg.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Ez az ApacheBench, 2.3-as verzió <$ Felülvizsgálat: 655654 $>
Szerzői jog 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Az Apache Software Foundation engedéllyel rendelkezik, http://www.apache.org/
Helyi szellemi teljesítményértékelés (legyen türelmes)
500 kérés befejeződött
Befejezett 1000 kérés
Teljesített 1500 igény
Befejezett 2000 kérés
2500 kérés befejeződött
3000 kérés teljesítve
3500 kérés teljesítve
4000 kérés teljesítve
4500 kérés teljesítve
5000 kérés teljesítve
5000 kérés befejeződött
Szerver szoftver: Apache / 2.2.15
Szerver gazdagépneve: localhost
Szerver port: 80
Dokumentum elérési útja: /
Dokumentum hossza: 4961 byte
Párhuzamossági szint: 500
A vizsgálatokhoz szükséges idő: 13,389 másodperc
Teljes igények: 5000
Sikertelen kérelmek: 0
Írási hibák: 0
Nem 2xx válaszok: 5058
Teljes átvitel: 26094222 bájt
HTML átvitel: 25092738 bájt
Másodpercenkénti kérelmek: 373,45 [# / sec] (átlag)
Kérésre fordított idő: 1338.866 [ms] (átlag)
Kérésre fordított idő: 2.678 [ms] (átlag, az összes párhuzamos kérelem között)
Átviteli sebesség: 1903.30 [kt / s] fogadva
Csatlakozási idő (ms)
min átlag [+/- sd] medián max
Csatlakozás: 0 42 20,8 41 1000
Feldolgozás: 0 428 2116,5 65 13310
Várakozás: 0 416 2117.7 55 13303
Összesen: 51 470 2121,0 102 13378
Egy meghatározott időn belül kiszolgált kérelmek százalékos aránya (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (leghosszabb igény)
[[Email protected] ~] #

Tehát, amint láthatja, az Apache kezdett Másodpercenként 373 kérés, és összesen 13,389 másodpercbe telt a teljes kérések kiszolgálása.

Most már tudja, hogy az alapértelmezett konfiguráció képes kiszolgálni ezt a sok kérést, így bármilyen konfigurációs változtatás esetén megismételheti a tesztet az eredmények összehasonlítása és a legjobb egy.

nginx

Végezzük el a tesztet, amit az Apache-nél tettünk, így összehasonlíthatjuk, melyik teljesít jobban.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Ez az ApacheBench, 2.3-as verzió <$ Felülvizsgálat: 655654 $>
Szerzői jog 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Az Apache Software Foundation engedéllyel rendelkezik, http://www.apache.org/
Helyi szellemi teljesítményértékelés (legyen türelmes)
500 kérés befejeződött
Befejezett 1000 kérés
Teljesített 1500 igény
Befejezett 2000 kérés
2500 kérés befejeződött
3000 kérés teljesítve
3500 kérés teljesítve
4000 kérés teljesítve
4500 kérés teljesítve
5000 kérés teljesítve
5000 kérés befejeződött
Szerver szoftver: nginx / 1.10.1
Szerver gazdagépneve: localhost
Szerver port: 80
Dokumentum elérési útja: /
A dokumentum hossza: 3698 byte
Párhuzamossági szint: 500
A vizsgálatokhoz szükséges idő: 0,758 másodperc
Teljes igények: 5000
Sikertelen kérelmek: 0
Írási hibák: 0
Teljes átvitel: 19660000 bájt
HTML átvitel: 18490000 byte
Másodpercenkénti kérelmek: 6593.48 [# / sec] (átlag)
Kérésre fordított idő: 75.832 [ms] (átlag)
Kérésre fordított idő: 0,152 [ms] (átlag, az összes párhuzamos kérésnél)
Átviteli sebesség: 25317,93 [kt / s] fogadva
Csatlakozási idő (ms)
min átlag [+/- sd] medián max
Csatlakozás: 0 6 11,0 2 53
Feldolgozás: 5 19 8,2 17 53
Várakozás: 0 18 8,2 16 47
Összesen: 10 25 17,4 18 79
Egy meghatározott időn belül kiszolgált kérelmek százalékos aránya (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (leghosszabb igény)
[[Email protected] ~] #

AZTA! Láttad azt? Nginx kezelt Másodpercenként 6593 kérés! A győztes.

Tehát látja, hogy csak összehasonlítja a két webszervert, és ötleteket kap, melyiket válassza a webes alkalmazásához.

A fenti teszt a 64 bites CentOS 6.8-on található. Kipróbálhatja az operációs rendszer több kombinációját & Az optimális eredmény elérése érdekében a webszerver verziója.

OSTROM

OSTROM a HTTP betöltési teszt segédprogram, amelyet a UNIX támogat. Több URL-t beilleszthet egy szöveges fájlba, amellyel a tesztet betöltheti. Telepítheti az ostromot a yum használatával.

# yum install ostromot

Futtassuk a tesztet 500 egyidejű kéréssel 5 másodpercig.

[[Email protected] ~] # ostrom -q -t 5S -c 500 http: // localhost /
A szerver ostromának feloldása … kész.
Tranzakciók: 4323 találat
Raktárkészlet: 100,00%
Eltelt idő: 4,60 másodperc
Átvitt adatok: 15,25 MB
Válaszidő: 0,04 másodperc
Tranzakciós ráta: 939,78 transz / mp
Teljesítmény: 3,31 MB / sec
Párhuzamosság: 37.97
Sikeres tranzakciók: 4323
Sikertelen tranzakciók: 0
Leghosszabb tranzakció: 1.04
Legrövidebb tranzakció: 0.00
[[Email protected] ~] #

A paraméterek lebontása.

-q – csendes futtatáshoz (a kérés részleteinek nem mutatása)

-t – futás 5 másodpercig

-c – 500 egyidejű kérés

Tehát, mint láthatja, a rendelkezésre állás 100%, a válaszidő pedig 0,04 másodperc. A terhelési teszt paraméterét beállíthatja a célja alapján.

Gobench

Gobench Go nyelven és egyszerű betöltési tesztelő segédprogrammal van írva a webszerver teljesítményének összehasonlításához. Több mint 20 000 egyidejű felhasználót támogat, amiben az ApacheBench nem rendelkezik.

Apache JMeter

JMeter az egyik legnépszerűbb nyílt forráskódú eszköz a webalkalmazások teljesítményének mérésére. A JMeter Java alapú alkalmazás, és nem csak webszerver, de PHP, Java ellen is használható. ASP.net, SOAP, REST stb.

A JMeter tisztességes, barátságos felhasználói felületet kapott, és a legfrissebb 3.0 verzióhoz Java 7 vagy újabb szükséges az alkalmazás elindításához. Meg kell próbálnia a JMeter-et, ha a célja az internetes alkalmazás teljesítményének optimalizálása.

wrk

wrk egy újabb modern teljesítménymérő eszköz, amely terhelést jelent a webszerverre, és késleltetést, másodpercenkénti igényt, másodpercenként továbbítást stb. ad.

A wrk segítségével megadhatja, hogy futtasson-e számos szálat tartalmazó terhelési teszt.

Vegyünk egy példát egy teszt futtatásához 5 percig, 500 egyidejű felhasználóval, 8 szállal.

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

HTTPLoad

A Httpload el tudja olvasni a fájl több URL-jét, vagy megadhatja a parancs argumentumában. A legújabb verzió támogatja az SSL / TLS-t, ami azt jelenti, hogy lekérdezheti a HTTPS (SSL) kompatibilis weboldal URL-jét.

Az SSL-kompatibilis URL tesztelésekor lehetősége van a rejtjel megadására, és az egyszerű tesztparancs így néz ki.

httpload-encher AES256-SHA – párhuzamos 200 másodperc 120 URL_LIST.txt

A jobb megértés érdekében a fenti teszt 200 párhuzamos felhasználóval 2 percig fut.

Curl-rakodó

curl-loader C betűvel van írva, hogy szimulálja az alkalmazásterhelést, és támogatja az SSL / TLS-t. A weblapteszt mellett ezt a nyílt forrású eszközt is felhasználhatja az FTP-kiszolgálók betöltésére.

Készíthet egy teszttervet HTTP, HTTPS, FTP és FTPS keverékével egyetlen kötegelt konfigurációban.

HTTPERF

Az HTTPERF egy nagy teljesítményű eszköz, amely a mikro- és makro szintű benchmarkra összpontosít. Támogatja a HTTP / 1.1 és SSL protokollokat.

Ha várhatóan egyidejű felhasználók száma áll fenn, és szeretne tesztelni, hogy a webszerver kiszolgálja-e egy kérés egy számát, akkor használhatja a következő parancsot.

httperf – kiszolgáló localhost –port 80 – száma-conns 1000 – 100

A fenti parancs másodpercenként 100 kéréssel teszteli az 1000 HTTP kérést.

Tsung

Tsung egy multi-protokollon keresztül elosztott stressz-tesztelő eszköz a HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL szerver stresszének növelésére. Támogatja a HTTP / 1.0, HTTP / 1.1, és a sütik automatikusan kezelésre kerülnek.

A Tsung segítségével kivitelezhető jelentés készítése.

Következtetés

Remélem fent benchmarking eszközök elképzelést ad a webszerver teljesítményéről, és segít eldönteni, mi működik a legjobban a projektnél.

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