Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:

V tomto článku si vyskúšame reverzné inžinierstvo, dalo by sa povedať. Dostaneme naše špinavé ruky pod kapotu každého webového servera a využijeme ich spôsobmi, ktoré by nikto nikdy nezneužil.

Tento test je meraním guľovitého koňa vo vákuu, nič iné ako získané údaje a teraz nevieme, čo s tým robiť.

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:

technika

Operačný systém pre Nginx a Apache je Ubuntu 18.04 LTS, pre IIS Windows Server Core 2019. Pred testami dostali všetky operačné systémy najnovšie aktualizácie k 04.12.2019. decembru XNUMX.

Testy boli vykonávané výhradne cez HTTP. Každý webový server prevádzkoval rovnakú stránku, bezplatnú šablónu Jekyll od spoločnosti Codrops. Odkaz. Každý webový server mal vypnutú kompresiu gzip.

Test priepustnosti bol vykonaný pomocou nástrojov Httpd s argumentmi:

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

Servery boli obmedzené na 10, 5 a 1 percento jadra na 8, 4 a jednom jadre. Testovacím zariadením bol počítač s frekvenciou 9900K@5400MHz, čo znamená, že server prijímajúci 10% limit dostane približne 540MHz na jadro.

Test TTFB bol vykonaný pri prvom spustení servera a meraný pomocou DevTools; po prijatí výsledku bol server vypnutý a vrátený späť na predchádzajúci kontrolný bod, aby sa eliminoval výskyt akéhokoľvek druhu vyrovnávacej pamäte.

Tester a webový server boli na rovnakom hostiteľovi a na rovnakom virtuálnom prepínači.

Ak chcete okamžite vyhodnotiť diskový subsystém, výsledky benchmarkov ATTO a CrystalDIskMark, aby ste mali predstavu o úzkych miestach.

Údaje prevzaté z virtuálneho počítača:Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:

výsledky:

TTFB:

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Priemerný TTFB pre IIS je najmenší, 0,5 ms, oproti 1,4 ms pre Apache a 4 ms pre Nginx.

priepustnosť:

Najprv sa pozrime, ako dobre sa každý server škáluje na základe počtu jadier.

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Graf zobrazuje počet volaní testera na webový server a latenciu. Graf ukazuje, že NGINX spracoval 98 % všetkých požiadaviek a doručil stránku za 20 ms alebo menej. IIS, podobne ako Apache, dokončilo posledných 5 % všetkých hovorov za 76 ms a 14 ms.

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Graf zobrazuje priemerný čas spracovania jednej požiadavky počas záťažového testu.

Ako môžete vidieť z grafov, IIS sfúkol Apache aj Nginx a pri vysokej záťaži sa výrazne spomalil. 

IIS jasne uprednostňovala 4 jadrá pred XNUMX, pričom vykazovala nižšie latencie na XNUMX, ale tiež výrazne neuprednostňovala jedno jadro.

NGINX sa dobre škáluje na všetkých 8 jadrách a pre Apache sa scenár s jedným jadrom zdá byť najlepšou voľbou.

Škálovateľnosť:

Nginx:

Teraz sa pozrime na škálovateľnosť z hľadiska frekvencie a počtu jadier. 

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Nginx neprešiel testami s limitom 1 % pre 4 a 1 jadrá, pri prekročení 2000 požiadaviek ukončil spojenie s testerom.

apache:

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Apache, podobne ako Nginx, po spracovaní 2500 8 požiadaviek vzdal a uzavrel spojenie. Apache prepadol v teste na 4, 1 a 1 jadrách s limitom 5%, no navyše prepadol aj testom s limitom XNUMX% na jednom jadre, čo je horšie ako Nginx

IIS:

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Počas testov IIS nazhromaždil obrovský rad požiadaviek, no spracoval každú z nich. Zdá sa, že po vybalení nie sú nastavené žiadne časové limity na spracovanie žiadosti.

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Graf zobrazuje čas potrebný na dokončenie testu. Úplne absurdné testovacie konfigurácie boli vyradené. Diagram ukazuje, aký náročný je IIS, pokiaľ ide o hardvér, a aký úžasný je NGINX.

Škálovateľnosť z disku:

Nginx:

Teraz sa pozrime na škálovateľnosť z hľadiska frekvencie a počtu jadier a rýchlosti disku. 

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Tentoraz Nginx neuspel v 4 testoch namiesto dvoch.

apache:

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
Apache zlyhal v rovnakom počte testov ako naposledy.

IIS:

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:
IIS zobrazuje takmer identický graf, ako keby neexistovali žiadne obmedzenia disku. Vo všeobecnosti sa grafika všetkých serverov príliš nezmenila, čo znamená, že každý z nich ukladal statické údaje do pamäte RAM a odtiaľ ich podával. Tu vidíme hlavné úzke miesto - samotný webový server.

Na základe tohto testovania je priskoro robiť závery, zatiaľ sme HTTPS, kompresiu a HTTP/2 netestovali živým certifikátom od Let's Encrypt. O tom si povieme v ďalšom článku.

Bitka o WEB servery. Časť 1 – HTTP mimo dosahu:

Zdroj: hab.com

Pridať komentár