Í þessari grein munum við reyna fyrir okkur í bakverkfræði, mætti segja. Við munum fá óhreinar hendur okkar undir húddinu á hverjum vefþjóni og nýta þá á þann hátt sem enginn myndi nokkurn tímann nýta.
Þetta próf er mæling á kúlulaga hesti í lofttæmi, ekkert annað en gögn sem fengust og nú vitum við ekki hvað við eigum að gera við þau.
Aðferðafræði
Stýrikerfið fyrir Nginx og Apache er Ubuntu 18.04 LTS, fyrir IIS Windows Server Core 2019. Fyrir prófin fengu öll stýrikerfi nýjustu uppfærslurnar frá og með 04.12.2019. desember XNUMX.
Prófanir voru eingöngu gerðar yfir HTTP. Hver vefþjónn rak sömu síðuna, ókeypis Jekyll sniðmát frá Codrops.
Afkastaprófið var gert með Httpd-tólum með rökunum:
ab -n 50000 -c 500 http://192.168.76.204:80/
Netþjónar voru takmarkaðir við 10, 5 og 1 prósent af kjarnanum á 8, 4 og einum kjarna. Prófunarbekkurinn var tölva með 9900K@5400MHz, sem þýðir að þjónninn sem fær 10% mörk fær um 540MHz á hvern kjarna.
TTFB prófið var framkvæmt þegar þjónninn ræsti fyrst og mældi með DevTools; eftir að niðurstaðan barst var slökkt á þjóninum og rúllað aftur á fyrri eftirlitsstað til að koma í veg fyrir útlit hvers kyns skyndiminni.
Prófarinn og vefþjónninn voru á sama vélinni og á sama sýndarrofanum.
Til að meta diskundirkerfið strax, niðurstöður ATTO og CrystalDIskMark viðmiðanna til að hafa hugmynd um flöskuhálsana.
Gögn tekin úr sýndarvélinni:
Úrslit:
TTFB:
Meðaltal TTFB fyrir IIS er minnst, 0,5ms, á móti 1,4ms fyrir Apache og 4ms fyrir Nginx.
Afköst:
Í fyrsta lagi skulum við skoða hversu vel hver netþjónn mælist miðað við fjölda kjarna.
Grafið sýnir fjölda prófara símtala á vefþjóninn og leynd. Grafið sýnir að NGINX afgreiddi 98% allra beiðna og afhenti síðuna á 20 ms eða minna. IIS, eins og Apache, kláraði síðustu 5% allra símtala á 76 ms og 14 ms, í sömu röð.
Grafið sýnir meðalvinnslutíma fyrir eina beiðni meðan á álagsprófi stendur.
Eins og þú sérð á línuritunum sprengdi IIS bæði Apache og Nginx í burtu og hægði verulega á sér við mikið álag.
IIS valdi greinilega 4 kjarna fram yfir XNUMX, sýndi lægri leynd á XNUMX, en var heldur ekki hlynntur einum kjarna.
NGINX mælist vel yfir alla 8 kjarna og fyrir Apache virðist einskjarna atburðarás vera besti kosturinn.
Skalanleiki:
nginx:
Nú skulum við líta á sveigjanleika hvað varðar tíðni og fjölda kjarna.
Nginx stóðst ekki próf með takmörkunum 1% fyrir 4 og 1 kjarna; þegar það fór yfir 2000 beiðnir, sleit það tengingunni við prófarann.
Apache:
Apache, eins og Nginx, hafði afgreitt 2500 beiðnir, gafst upp og lokaði tengingunni. Apache féll á prófinu á 8, 4 og 1 kjarna með 1% mörk, en að auki féll það einnig á prófinu með 5% takmörk á einum kjarna, sem er verra en Nginx
IIS:
Í prófunum safnaði IIS risastórri biðröð af beiðnum en afgreiddi hverja þeirra. Eins og gefur að skilja eru engir tímamörk settir fyrir úrvinnslu beiðna.
Myndin sýnir tímann sem það tók að klára prófið. Algjörlega fáránlegum prófunarstillingum var hent. Skýringarmyndin sýnir hversu krefjandi IIS er þegar kemur að vélbúnaði og hversu dásamlegt NGINX er.
Sveigjanleiki frá diski:
nginx:
Nú skulum við líta á sveigjanleika hvað varðar tíðni og fjölda kjarna og hraða disksins.
Að þessu sinni féll Nginx í 4 prófum í stað tveggja.
Apache:
Apache féll á sama fjölda prófa og síðast.
IIS:
IIS sýnir næstum eins línurit, eins og það væru engar diskatakmarkanir. Almennt séð breyttist grafík allra netþjóna ekki mikið, sem þýðir að hver þeirra safnaði kyrrstæðum gögnum í vinnsluminni og þjónaði þeim þaðan. Hér sjáum við aðal flöskuhálsinn - vefþjóninn sjálfur.
Það er of snemmt að draga ályktanir byggðar á þessum prófunum; við höfum ekki enn prófað HTTPS, þjöppun og HTTP/2 með lifandi vottorði frá Let's Encrypt. Við munum tala um þetta í næstu grein.
Heimild: www.habr.com