V tem članku se bomo nekoliko preizkusili v obratnem inženirstvu, lahko bi rekli. Pogledali bomo s svojimi umazanimi rokami pod pokrov vsakega od spletnih strežnikov in jih izkoriščali tako, kot jih nihče nikoli ne bi izkoristil.
Ta test je kot meritev sfere konja v vakuumu, gre le za podatke, ki so bili pridobljeni, in zdaj ne vemo, kaj naj naredimo z njimi.
Metodika
Kot operacijska sistem za Nginx in Apache deluje Ubuntu 18.04 LTS, za IIS pa Windows Server Core 2019. Vse operacijske sisteme so pred testi prejele najnovejše posodobitve na stanje 04.12.2019.
Testi so bili izvedeni izključno po HTTP. Na vsakem od spletnih strežnikov se je vrtela enaka stran, brezplačen predloga za Jekyll od Codrops. . Na vsakem od spletnih strežnikov je bilo izklopljeno gzip stiskanje.
Test prepustnosti je bil izveden s Httpd-tools z argumenti:
ab -n 50000 -c 500 http://192.168.76.204:80/Na strežnike je bil nameščen limit 10, 5 in 1 odstotek od jedra na 8, 4 in enem jedru. Kot testno stojalo je bil računalnik z 9900K@5400MHz, kar pomeni, da strežnik, ki je dobil omejitev 10%, prejme okoli 540MHz na jedro.
Test TTFB je bil izveden ob prvem nalaganju strežnika in izmerjen s pomočjo DevTools, po pridobitvi rezultata je bil strežnik izklopljen in vrnjen na prejšnjo točko nadzora, da bi se izognili kakršnim koli predpomnjenjem.
Testiralec in spletni strežnik sta bila na istem gostitelju in na istem virtualnem stikalu.
Za takojšnjo oceno diskovne podsystems smo zabeležili rezultate benchmarka ATTO in CrystalDiskMark, da bi imeli predstavo o ozkih grlih.
Podatki so bili zbrani z virtualnega računalnika:



Rezultati:
TTFB:

Povprečni TTFB pri IIS je najmanjši, 0,5ms, v primerjavi z 1,4ms pri Apache in 4ms pri Nginx.
dogodki/s (eps): 836.6908
Najprej bomo pogledali, kako dobro se vsak od strežnikov skalira glede na število jeder.

Na grafu je prikazano število zahtevkov testera do spletnega strežnika in latenca. Na grafu je vidno, da je NGINX obdelal 98% vseh zahtevkov, saj je stran dostavil v 20ms ali manj. IIS in Apache sta v zadnjih 5% vseh zahtevkov obdelala v 76ms in 14ms.



Na grafu je prikazano povprečno časovno trajanje obdelave enega zahtevka med stres testom.
Kot je razvidno iz grafikonov, je IIS zaostajal tako za Apache kot Nginx, se močno upočasnil pod visoko obremenitvijo.
IIS je očitno dal prednost 4 jedrom pred osmimi, saj je pokazal manjše zamude pri štirih, vendar tudi ni bil preveč naklonjen enemu jedru.
NGINX se odlično skalira na vseh 8 jeder, medtem ko se za Apache zdi, da je enojedrni scenarij najboljša izbira.
Skalabilnost:
Nginx:
Sedaj bomo preučili skalabilnost glede na frekvenco in število jeder.

Testi z omejitvijo 1 % na 4 in 1 jedru Nginx niso uspeli, saj je pri 2000 zahtevkih prekinil povezavo s testerjem.
Apache:

Apache, tako kot Nginx, je obdelal 2500 zahtevkov in nato obupal ter prekinil povezavo. Apache ni uspešno prestal testa na 8, 4 in 1 jedru z omejitvijo 1 %, poleg tega pa ni uspešno prestal niti testa pri 5 % omejitvi na enem jedru, kar je slabše kot Nginx.
IIS:

IIS je med testiranjem nabral ogromno čakalno vrsto zahtevkov, a je vsak izmed njih obdelal. Zdi se, da v osnovi nima nastavljenih časovnih omejitev za obdelavo zahtevkov.

V diagramu je prikazan čas, v katerem je bil test končan. Povsem absurdne konfiguracije testiranja so bile izločene. Iz diagrama je razvidno, koliko resursov zahteva IIS in kako odličen je NGINX.
Skalabilnost iz diska:
Nginx:
Sedaj bomo preučili skalabilnost glede na frekvenco, število jeder in hitrost diska.

Tokrat Nginx ni prestal 4 testov, namesto dveh.
Apache:

Apache je propadel pri enakem številu testov, kot prejšnjič.
IIS:

IIS prikazuje skoraj identično grafiko, kot da omejitev na disku sploh ne bi bilo. Na splošno so se grafi vseh strežnikov malo spremenili, kar pomeni, da je vsak od njih v predpomnilnik shranil statiko in jo od tam posredoval. Tu vidimo glavno ozko grlo – sam spletni strežnik.
Za dokončne zaključke na podlagi teh testiranj je prezgodaj, še nismo testirali HTTPS, zgoščevanja in HTTP/2 z živim certifikatom od Let’s Encrypt. O tem bomo govorili v naslednjem članku.
Izvor: habr.com
