Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:

F'dan l-artikolu aħna nippruvaw naħa tagħna fl-inġinerija inversa, wieħed jista 'jgħid. Aħna nġibu idejna maħmuġin taħt il-barnuża ta 'kull server tal-web, nisfruttawhom b'modi li ħadd qatt ma jisfrutta.

Dan it-test huwa kejl ta 'żiemel sferiku fil-vakwu, xejn aktar minn dejta li nkisbet, u issa ma nafux x'għandna nagħmlu biha.

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:

Metodoloġija

Is-sistema operattiva għal Nginx u Apache hija Ubuntu 18.04 LTS, għal IIS Windows Server Core 2019. Qabel it-testijiet, is-sistemi operattivi kollha rċevew l-aħħar aġġornamenti mill-04.12.2019 ta 'Diċembru XNUMX.

It-testijiet saru esklussivament fuq HTTP. Kull server tal-web mexxa l-istess paġna, mudell Jekyll b'xejn minn Codrops. Link. Kull server tal-web kellu l-kompressjoni gzip diżattivata.

It-test tal-fluss sar b'għodod Httpd bl-argumenti:

ab -n 50000 -c 500 http://192.168.76.204:80/

Is-servers kienu limitati għal 10, 5, u 1 fil-mija tal-qalba fuq 8, 4, u qalba waħda. Il-bank tat-test kien kompjuter b'9900K@5400MHz, li jfisser li s-server li jirċievi limitu ta '10% jirċievi madwar 540MHz għal kull qalba.

It-test TTFB sar meta s-server beda l-ewwel u mkejjel bl-użu ta 'DevTools wara li rċieva r-riżultat, is-server ġie mitfi u rritornat lejn il-punt ta' kontroll preċedenti biex tiġi eliminata d-dehra ta 'kull tip ta' caches;

It-tester u s-server tal-web kienu fuq l-istess host u fuq l-istess swiċċ virtwali.

Biex tevalwa immedjatament is-subsistema tad-disk, ir-riżultati tal-benchmarks ATTO u CrystalDIskMark sabiex ikollok idea tal-konġestjonijiet.

Dejta meħuda mill-magna virtwali:Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:

Riżultati:

TTFB:

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
It-TTFB medju għal IIS huwa l-iżgħar, 0,5ms, kontra 1,4ms għal Apache u 4ms għal Nginx.

throughput:

L-ewwel, ejja nħarsu lejn kemm kull server jisskala bbażat fuq in-numru ta 'qlub.

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Il-graff turi n-numru ta 'sejħiet tat-tester lis-server tal-web u l-latenza. Il-graff turi li NGINX ipproċessa 98% tat-talbiet kollha, u kkonsenja s-sit f'20ms jew inqas. IIS, bħal Apache, lesta l-aħħar 5% tas-sejħiet kollha f'76ms u 14ms, rispettivament.

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Il-graff turi l-ħin medju tal-ipproċessar għal talba waħda waqt test tal-istress.

Kif tistgħu taraw mill-graffs, IIS nefaħ kemm Apache kif ukoll Nginx, u naqas b'mod sinifikanti taħt tagħbija għolja. 

L-IIS ipprefera b'mod ċar 4 qlub fuq XNUMX, li juri latenzi aktar baxxi fuq XNUMX, iżda wkoll ma ffavorixx bil-qawwa qalba waħda.

NGINX tiskala sew fit-8 qlub kollha, u għal Apache, ix-xenarju ta 'qalba waħda jidher li huwa l-aħjar għażla.

Skalabbiltà:

nginx:

Issa ejja nħarsu lejn l-iskalabbiltà f'termini ta 'frekwenza u numru ta' qlub. 

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Nginx ma għaddax testijiet b'limitu ta '1% għal 4 u 1 cores meta qabeż 2000 talba, skonnettjat mit-tester.

Apache:

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Apache, bħal Nginx, wara li pproċessa 2500 talba, ċeda u għalaq il-konnessjoni. Apache falla mit-test fuq 8, 4 u 1 qlub b'limitu ta '1%, iżda barra minn hekk falla wkoll it-test b'limitu ta' 5% fuq qalba waħda, li huwa agħar minn Nginx

IIS:

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Matul it-testijiet, l-IIS akkumula kju ġiganteski ta’ talbiet iżda pproċessa kull wieħed minnhom. Apparentement, barra mill-kaxxa m'hemm l-ebda timeouts stabbiliti għall-ipproċessar tat-talba.

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
It-tabella turi ż-żmien li ħa biex jitlesta t-test. Konfigurazzjonijiet tal-ittestjar kompletament assurdi ġew skartati. Id-dijagramma turi kemm l-IIS huwa impenjattiv meta niġu għall-ħardwer, u kemm NGINX hija sabiħa.

Skalabbiltà mid-disk:

nginx:

Issa ejja nħarsu lejn l-iskalabbiltà f'termini ta 'frekwenza u numru ta' qlub u veloċità tad-disk. 

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Din id-darba Nginx falla 4 testijiet minflok tnejn.

Apache:

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
Apache falla l-istess numru ta 'testijiet bħall-aħħar darba.

IIS:

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:
IIS juri graff kważi identiku, bħallikieku ma kien hemm l-ebda restrizzjonijiet fuq id-disk. B'mod ġenerali, il-grafika tas-servers kollha ma nbidlitx ħafna, li jfisser li kull wieħed minnhom daħħal id-dejta statika fil-cache fir-RAM u servaha minn hemm. Hawnhekk naraw il-konġestjoni ewlenija - is-server tal-web innifsu.

Għadu kmieni wisq biex nislet konklużjonijiet ibbażati fuq dan l-ittestjar għadna ma ttestjajnax HTTPS, kompressjoni u HTTP/2 b'ċertifikat ħaj minn Let's Encrypt. Aħna ser nitkellmu dwar dan fl-artiklu li jmiss.

Battalja ta 'servers WEB. Parti 1 – HTTP out of touch:

Sors: www.habr.com

Żid kumment