Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:

Yn dit artikel sille wy ús hân besykje op reverse engineering, soe men sizze. Wy sille ús smoarge hannen ûnder de motorkap fan elke webserver krije, en se brûke op manieren dy't gjinien oait soe eksploitearje.

Dizze test is in mjitting fan in bolfoarmich hynder yn in fakuüm, neat mear as gegevens dy't waarden krigen, en no witte wy net wat te dwaan mei it.

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:

Methodology

It bestjoeringssysteem foar Nginx en Apache is Ubuntu 18.04 LTS, foar IIS Windows Server Core 2019. Foardat de tests krigen alle bestjoeringssystemen de lêste updates fan 04.12.2019 desimber XNUMX ôf.

Tests waarden eksklusyf útfierd oer HTTP. Elke webserver rûn deselde side, in fergese Jekyll-sjabloan fan Codrops. link. Elke webserver hie gzip-kompresje útskeakele.

De trochfiertest waard dien mei Httpd-ark mei de arguminten:

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

Servers waarden beheind ta 10, 5, en 1 prosint fan de kearn op 8, 4, en ien kearn. De testbank wie in kompjûter mei 9900K@5400MHz, wat betsjut dat de tsjinner dy't in limyt fan 10% ûntfangt sawat 540MHz per kearn krijt.

De TTFB-test waard útfierd doe't de tsjinner foar it earst opstart en mjitten mei DevTools nei ûntfangst fan it resultaat, waard de tsjinner útskeakele en rôle werom nei it foarige kontrôlepunt om it ferskinen fan elke soart caches te eliminearjen.

De tester en de webserver wiene op deselde host en op deselde firtuele switch.

Om it skiifsubsysteem daliks te evaluearjen, de resultaten fan 'e ATTO- en CrystalDIskMark-benchmarks om in idee te hawwen fan' e knelpunten.

Gegevens nommen fan 'e firtuele masine:Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:

Resultaten:

TTFB:

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
De gemiddelde TTFB foar IIS is de lytste, 0,5ms, tsjin 1,4ms foar Apache en 4ms foar Nginx.

Trochslach:

Litte wy earst sjen nei hoe goed elke server skalen basearre op it oantal kearnen.

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
De grafyk toant it oantal testeroproppen nei de webserver en latency. De grafyk lit sjen dat NGINX 98% fan alle oanfragen ferwurke, en levere de side yn 20ms of minder. IIS, lykas Apache, foltôge de lêste 5% fan alle oproppen yn respektivelik 76ms en 14ms.

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
De grafyk toant de gemiddelde ferwurkingstiid foar ien fersyk by in stresstest.

Lykas jo kinne sjen fan 'e grafiken, blies IIS sawol Apache as Nginx fuort, en fertrage signifikant ûnder hege lading. 

IIS foarkar dúdlik 4 kearnen boppe XNUMX, toant legere latencies op XNUMX, mar joech ek net sterk foar ien kearn.

NGINX skaleart goed oer alle 8 kearnen, en foar Apache liket it single-core senario de bêste kar te wêzen.

Skalberens:

nginx:

Litte wy no sjen nei skalberens yn termen fan frekwinsje en oantal kearnen. 

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Nginx hat gjin tests trochjûn mei in limyt fan 1% foar 4 en 1 kearnen as it 2000 oanfragen oersloech, beëinige it de ferbining mei de tester.

Apache:

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Apache, lykas Nginx, hawwen ferwurke 2500 oanfragen, joech op en slute de ferbining. Apache mislearre de test op 8, 4 en 1 kearnen mei in limyt fan 1%, mar dêrneist mislearre it ek de test mei in limyt fan 5% op ien kearn, wat slimmer is as Nginx

IIS:

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Tidens de tests sammele IIS in gigantyske wachtrige fan oanfragen, mar ferwurke elk fan har. Blykber binne d'r bûten it fak gjin timeouts ynsteld foar ferwurking fan fersyk.

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
It diagram toant de tiid dy't it duorre om de test te foltôgjen. Folslein absurde testkonfiguraasjes waarden wegere. It diagram lit sjen hoe easken IIS is as it giet om hardware, en hoe prachtich NGINX is.

Skalberens fan skiif:

nginx:

Litte wy no sjen nei skalberens yn termen fan frekwinsje en oantal kearnen en skiifsnelheid. 

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Dizze kear mislearre Nginx 4 tests ynstee fan twa.

Apache:

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
Apache mislearre itselde oantal testen as de lêste kear.

IIS:

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:
IIS toant in hast identike grafyk, as wiene d'r gjin skiifbeperkingen. Yn 't algemien feroare de grafiken fan alle tsjinners net folle, dat betsjut dat elk fan har statyske gegevens yn RAM cache en dêrwei tsjinne. Hjir sjogge wy it wichtichste knelpunt - de webserver sels.

It is te betiid om konklúzjes te lûken op basis fan dizze testen, wy hawwe noch net hifke HTTPS, kompresje en HTTP/2 mei in live sertifikaat fan Let's Encrypt. Wy sille prate oer dit yn it folgjende artikel.

Slach by WEB tsjinners. Diel 1 - HTTP út kontakt:

Boarne: www.habr.com

Add a comment