Bitva webových serverů. Část 1 – odtržený od reality HTTP:

V tomto článku se pokusíme o reverzní inženýrství, dá se říct. Nahlédneme našimi špinavými rukama pod kapotu každého z webových serverů a využijeme je tak, jak by je nikdo jiný nikdy nevyužil.

Tento test je měřením sférického koně ve vakuu, jsou to jen data, která byla získána, a nyní nevíme, co s nimi dělat.

Bitva webových serverů. Část 1 – odtržený od reality HTTP:

Metodika

Jako operační systém pro Nginx a Apache slouží Ubuntu 18.04 LTS, pro IIS Windows Server Core 2019. Všechny operační systémy před testy dostaly poslední aktualizace k datu 04.12.2019.

Testy byly prováděny výhradně po HTTP. Na každém z webových serverů běžela stejná stránka, zdarma dostupná šablona pro Jekyll od Codrops. Odkaz. Na každém z webových serverů bylo vypnuto komprese gzip.

Test propustnosti byl prováděn s Httpd-tools s argumenty:

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

Na servery byl nastaven limit 10, 5 a 1 procento od jádra na 8, 4 a jednom jádře. Testovací stanice byla počítač s 9900K@5400MHz, což znamená, že server, který dostal omezení 10%, získává přibližně 540MHz na jádro.

Test TTFB byl proveden při prvním načtení serveru a měřil se pomocí DevTools, po získání výsledku byl server vypnut a vrácen na předchozí kontrolní bod, aby se vyloučila jakákoliv forma cache.

Tester a webový server byly na stejném hostiteli a na stejném virtuálním přepínači.

Abychom hned vyhodnotili diskový subsystém, výsledky benchmarků ATTO a CrystalDIskMark, abychom měli představu o úzkých místech.

Data byla získána z virtuálního stroje:Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Bitva webových serverů. Část 1 – odtržený od reality HTTP:

Výsledky:

TTFB:

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Průměrný TTFB u IIS je nejnižší, 0,5ms, oproti 1,4ms u Apache a 4ms u Nginx.

Průchodnost:

Nejprve se podíváme, jak dobře se každý ze serverů škáluje podle počtu jader.

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Na grafu je znázorněn počet požadavků testujícího na webový server a latence. Na grafu je vidět, že NGINX zpracoval 98% všech požadavků a poskytl stránku za 20ms a méně. IIS, stejně jako Apache, zpracoval posledních 5% ze všech požadavků za 76ms a 14ms respektive.

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Na grafu je znázorněn průměrný čas zpracování jednoho požadavku během zátěžového testu.

Jak je možné vidět z grafů, IIS prohrál s oběma, Apache a Nginx, značně zpomalil při vysoké zátěži. 

IIS očividně preferoval 4 jádra před osmi, vykazoval menší latenci na čtyřech, ale také příliš neschvaloval ani jedno jádro.

NGINX se skvěle škáluje na všech 8 jádrech, zatímco pro Apache se zdá, že jednojádrový scénář je tím nejlepším řešením.

Škálovatelnost:

Nginx:

Nyní se podíváme na škálovatelnost podle frekvence a počtu jader. 

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Testy s omezením na 1% na 4 a 1 jádru Nginx neprošel, po překročení 2000 požadavků přerušil spojení s testerem.

Apache:

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Apache, stejně jako Nginx, po zpracování 2500 požadavků vzdal a přerušil spojení. Apache neprošel testem na 8, 4 a 1 jádru s limitem 1%, navíc neprošel ani testem s 5% omezením na jednom jádru, což je horší než Nginx.

IIS:

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
IIS během testů vytvořil obrovskou frontu požadavků, ale zpracoval každý z nich. Zřejmě v něm není standardně nastaven timeout pro zpracování požadavku.

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Na diagramu je znázorněn čas, za který byl test dokončen. Byly vyloučeny zcela absurdní konfigurace testování. Z diagramu je vidět, jak velmi IIS vyžaduje hardware a jak vynikající je NGINX.

Škálovatelnost podle disku:

Nginx:

Nyní se podíváme na škálovatelnost podle frekvence, počtu jader a rychlosti disku. 

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Tentokrát Nginx neprošel 4 testy, místo dvou.

Apache:

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
Apache selhal v rámci stejného počtu testů jako naposledy.

IIS:

Bitva webových serverů. Část 1 – odtržený od reality HTTP:
IIS ukazuje téměř identický graf, jako by žádné omezení na disk neexistovalo. Celkově se grafy všech serverů moc nezměnily, což znamená, že každý z nich si uchoval statiku v operační paměti a poskytoval ji odtud. Zde vidíme hlavní úzké místo – samotný webový server.

Je příliš brzy na to, abychom vyvodili závěry z tohoto testování, ještě jsme netestovali HTTPS, kompresi a HTTP/2 s živým certifikátem od Let’s Encrypt. O tom budeme hovořit v dalším článku.

Bitva webových serverů. Část 1 – odtržený od reality HTTP:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster