Selles artiklis proovime ennast tagasiviimises, vÔib öelda. Me uurime oma mÀÀrdunud kÀtega iga veebiserveri kapoti alt, kasutades neid nii, nagu keegi ei oleks kunagi kasutanud.
See test on nagu sfÀÀrilise hobuse mÔÔtmine vaakumis, mitte rohkem kui andmed, mis on saadud, ja me ei tea nĂŒĂŒd, mida nendega teha.
Metoodika
Nginxi ja Apache'i operatsioonisĂŒsteemiks on Ubuntu 18.04 LTS, IIS jaoks Windows Server Core 2019. KĂ”ik operatsioonisĂŒsteemid said enne teste viimased vĂ€rskendused seisuga 04.12.2019.
Testid viidi lĂ€bi ainult HTTP protokollis. IgaĂŒhel veebiserveritest jooksis ĂŒks ja sama leht, tasuta Jekylli mall Codropsilt. . KĂ”igis veebiserverites oli vĂ€lja lĂŒlitatud gzip-pressimine.
LÀbilaskevÔime testi tehti Httpd-tools'iga jÀrgmiste argumentidega:
ab -n 50000 -c 500 http://192.168.76.204:80/Serveritele seadistati piir 10, 5 ja 1 protsent tuumast vastavalt 8, 4 ja ĂŒhele tuumele. Testseadmeks oli arvuti 9900K@5400MHz, mis tĂ€hendab, et server, millele tĂ€hendati 10% piir, saab umbes 540MHz tuuma kaupa.
TTFB testi viidi lĂ€bi serveri esmakordse laadimise ajal ja mÔÔdeti DevTools'i abil, pĂ€rast tulemuse saamist serveri vĂ€lja lĂŒlitamist ja tagasi eelmisele kontrollpunktile, et vĂ€listada igasuguste vahemĂ€lu tekkimine.
Testija ja veebiserver olid samal hostil ja samas virtuaalses lĂŒlitites.
Koheseks diskisĂŒsteemi hindamiseks, ATTO ja CrystalDiskMarkâiga tehtud tulemused, et mĂ”ista kitsaskohti.
Andmed vĂ”eti virtuaalsest masinast:



Tulemused:
TTFB:

IIS keskmine TTFB on vĂ€iksem kui kĂ”igil, 0,5 ms, vĂ”rreldes 1,4 ms Apacheâiga ja 4 ms Nginxiga.
sĂŒndmusi/s (eps): 836,6908
Esmalt vaatame, kui hÀsti iga server suudab tuumade arvu jÀrgi skaleeruda.

Graafikul on nÀidatud testija pÀringute arvu veebiserverisse ja latentsus. Graafikust on nÀha, et NGINX töötas vÀlja 98% kÔigist pÀringutest, andes saidi tagasi 20 ms ja vÀhem. IIS ja Apache töötasid viimased 5% kÔigist pÀringutest vastavalt 76 ms ja 14 ms.



Graafik nĂ€itab keskmist ĂŒhe pĂ€ringu töötlemise aega stressitesti ajal.
Nagu graafikutest nĂ€ha, kaotas IIS nii Apache'ile kui Nginxile, aeglustudes tugeva koormuse all.Â
IIS eelistab selgelt 4 tuuma 8 olemasoleva ees, nĂ€idates vĂ€iksemaid viivitusi nelja tuumaga, kuid ei hindanud ka ĂŒhte tuuma liiga kĂ”rgelt.
NGINX skaalub hĂ€sti kĂ”iki 8 tuuma, samas kui Apache nĂ€ib parimat valikut pakkuda ĂŒhe tuuma stsenaariumile.
Skaalautuvus:
Nginx:
NĂŒĂŒd vaatame skaalaulatust sageduse, tuumade arvu ja ketta kiirusel.Â

1% piiranguga testis Nginx 4 ja 1 tuumaga ei lĂ€binud testimist, katkestades ĂŒhenduse testijaga, kui 2000 pĂ€ringut ĂŒletati.
Apache:

Apache, nagu Nginx, katkestas ĂŒhenduse 2500 pĂ€ringu töötlemise jĂ€rel. Apache ei lĂ€binud testi 8, 4 ja 1 tuumaga 1% limiidiga, ega ka 5% limiidiga ĂŒhe tuuma testis, mis on halvem kui Nginx.
IIS:

IIS genereeris testide ajal tohutu pĂ€ringute jĂ€rjekorra, kuid töötles igaĂŒhe neist. Tundub, et sellel pole vaikesetted pĂ€ringu töötlemiseks.

Diagrammil on nÀidatud aeg, mille jooksul test lÔpetati. TÀiesti absurdsed testimisnÔudmised jÀeti kÔrvale. Diagrammil on selgesti nÀha, kui nÔudlik IIS riistvara osas on ja kui hea on NGINX.
Skaalautuvus kettalt:
Nginx:
NĂŒĂŒd vaatame skaalaulatust sageduse, tuumade arvu ja ketta kiirusel.Â

Sel korral ei lÀbinud Nginx 4 testi, saavutades vaid kaks.
Apache:

Apache kukkus lÀbi sama arvu teste nagu eelmine kord.
IIS:

IIS nĂ€itab peaaegu identset graafikut, justkui poleks ketta piire. Ăldiselt pole kĂ”ikide serverite graafikud palju muutunud, mis tĂ€hendab, et igaĂŒhel neist on staatika vahemĂ€lus ja see edastas sealt. Siit nĂ€eme peamist kitsaskohka â veebiserverit.
KokkuvÔtteid selle testi pÔhjal on veel vara teha, me ei ole veel testinud HTTPS-i, kokkusurumist ja HTTP/2 reaalsete sertifikaatidega, millest rÀÀgime jÀrgmises artiklis.
Allikas: habr.com
