Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:

I den hÀr artikeln kommer vi att prova pÄ omvÀnd ingenjörskonst, kan man sÀga. Vi ska kika med vÄra smutsiga hÀnder under huven pÄ varje webbserver och utnyttja dem som ingen nÄgonsin skulle göra.

Detta test Àr en mÀtning av en sfÀrisk hÀst i vakuum, inte mer Àn data som har samlats in, och vi vet nu inte vad vi ska göra med dem.

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:

Metodologi

Som operativsystem för Nginx och Apache anvÀnds Ubuntu 18.04 LTS, för IIS anvÀnds Windows Server Core 2019. Alla operativsystem fick de senaste uppdateringarna den 04.12.2019 innan testerna.

Tester utfördes uteslutande över HTTP. PÄ varje webbserver kördes samma sida, en gratismall för Jekyll frÄn Codrops. LÀnk. PÄ varje webbserver var gzip-komprimering avstÀngd.

Kapacitetstestet genomfördes med Httpd-tools med argumenten:

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

En grÀns sattes för servrarna pÄ 10, 5 och 1 procent av kÀrnorna för 8, 4 och en kÀrna. Som testmiljö anvÀndes en dator med 9900K@5400MHz, vilket betyder att servern som fick en begrÀnsning pÄ 10% fÄr cirka 540MHz per kÀrna.

TTFB-testet genomfördes vid första serverladdningen och mÀttes med hjÀlp av DevTools. Efter att ha fÄtt resultatet stÀngdes servern av och ÄterstÀlldes till en tidigare kontrollpunkt, för att utesluta förekomsten av nÄgot slags cache.

Testaren och webbservern befann sig pÄ samma vÀrd och samma virtuella switch.

För att omedelbart bedöma lagringssystemet, resultaten frÄn ATTO och CrystalDiskMark-benchmarken, för att fÄ en uppfattning om flaskhalsar.

Data tas frĂ„n den virtuella maskinen:Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:

Resultat:

TTFB:

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Genomsnittlig TTFB för IIS Àr den lÀgsta av alla, 0,5ms, jÀmfört med 1,4ms för Apache och 4ms för Nginx.

Genomströmning:

Först ska vi se hur bra varje server skalar med avseende pÄ antal kÀrnor.

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Grafen visar antalet förfrÄgningar frÄn testaren till webbservern och latens. I grafen kan man se att NGINX hanterade 98% av alla förfrÄgningar och levererade webbplatsen pÄ 20ms eller mindre. IIS och Apache tog de sista 5% av alla förfrÄgningar pÄ 76ms respektive 14ms.

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Grafen visar genomsnittlig tid för att behandla en förfrÄgan under stresstestet.

Som man kan se frÄn graferna sÄ förlorade IIS mot bÄde Apache och Nginx, vilket kraftigt bromsade under hög belastning. 

IIS föredrog tydligt 4 kÀrnor framför Ätta, vilket visade lÀgre latens pÄ fyra, men visade heller inte stort stöd för en kÀrna.

NGINX skalar perfekt över alla 8 kÀrnor, medan Apache, verkar ett enkelkÀrnalt scenario vara det bÀsta valet.

Skalbarhet:

Nginx:

LÄt oss nu titta pÄ skalbarheten i termer av frekvens och antal kÀrnor. 

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Testet med ett tak pÄ 1% pÄ 4 och 1 kÀrna klarade inte Nginx, som bröt anslutningen till testaren efter att ha passerat 2000 förfrÄgningar.

Apache:

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Apache, precis som Nginx, gav upp efter att ha behandlat 2500 förfrÄgningar och bröt anslutningen. Apache klarade inte testen pÄ 8, 4 och 1 kÀrna med ett tak pÄ 1%, och det klarade inte heller testet med ett 5% tak pÄ en kÀrna, vilket Àr sÀmre Àn Nginx.

IIS:

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
IIS skapade under testerna en gigantisk kö av förfrÄgningar men behandlade var och en av dem. Det verkar som om det inte finns nÄgra tidsgrÀnser för att behandla en begÀran som Àr förinstallerade.

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Diagrammet visar den tid som krÀvdes för att avsluta testen. Alldeles absurda testkonfigurationer avvisades. FrÄn diagrammet framgÄr det hur resurskrÀvande IIS Àr och hur bra NGINX fungerar.

Skalbarhet frÄn disk:

Nginx:

Nu ska vi titta pÄ skalbarheten utifrÄn frekvens och antal kÀrnor och disk hastighet. 

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Den hÀr gÄngen klarade inte Nginx 4 tester, istÀllet för tvÄ.

Apache:

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
Apache misslyckades med samma antal tester som tidigare.

IIS:

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:
IIS visar nĂ€stan en identisk kurva, som om det inte fanns nĂ„gra diskbegrĂ€nsningar. Generellt sett har kurvorna för alla servrar inte förĂ€ndrats nĂ€mnvĂ€rt, vilket tyder pĂ„ att var och en av dem cachade statiska filer i RAM och levererade frĂ„n dĂ€r. HĂ€r ser vi den största flaskhalsen – sjĂ€lva webbservern.

Det Ă€r för tidigt att dra slutsatser baserat pĂ„ denna testning, vi har Ă€nnu inte testat HTTPS, komprimering och HTTP/2 med ett aktivt certifikat frĂ„n Let’s Encrypt. Detta kommer vi att ta upp i nĂ€sta artikel.

Kampen mellan WEB-servrar. Del 1 – en avkopplad HTTP:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster