Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:

Katika makala hii tutajaribu mkono wetu kwa uhandisi wa reverse, mtu anaweza kusema. Tutaweka mikono yetu michafu chini ya kifuniko cha kila seva ya wavuti, tukizinyonya kwa njia ambazo hakuna mtu angeweza kunyonya.

Jaribio hili ni kipimo cha farasi wa spherical katika utupu, hakuna chochote zaidi ya data iliyopatikana, na sasa hatujui nini cha kufanya nayo.

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:

Mbinu

Mfumo wa uendeshaji wa Nginx na Apache ni Ubuntu 18.04 LTS, kwa ajili ya IIS Windows Server Core 2019. Kabla ya majaribio, mifumo yote ya uendeshaji ilipokea masasisho mapya kuanzia tarehe 04.12.2019 Desemba XNUMX.

Majaribio yalifanywa kupitia HTTP pekee. Kila seva ya wavuti iliendesha ukurasa sawa, kiolezo cha bure cha Jekyll kutoka Codrops. Kiungo. Kila seva ya wavuti ilikuwa imezimwa ukandamizaji wa gzip.

Jaribio la upitishaji lilifanywa na zana za Httpd na hoja:

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

Seva zilipunguzwa kwa asilimia 10, 5, na 1 ya msingi kwenye 8, 4, na msingi mmoja. Benchi la majaribio lilikuwa kompyuta yenye 9900K@5400MHz, ambayo ina maana kwamba seva inayopokea kikomo cha 10% inapokea takriban 540MHz kwa kila msingi.

Jaribio la TTFB lilifanyika seva ilipowasha na kupima kwa mara ya kwanza kwa kutumia DevTools; baada ya kupokea matokeo, seva ilizimwa na kurejeshwa kwenye kituo cha ukaguzi cha awali ili kuondoa mwonekano wa aina yoyote ya akiba.

Kijaribu na seva ya wavuti vilikuwa kwenye seva pangishi na kwenye swichi moja ya mtandaoni.

Ili kutathmini mara moja mfumo mdogo wa diski, matokeo ya alama za ATTO na CrystalDIskMark ili kuwa na wazo la vikwazo.

Data iliyochukuliwa kutoka kwa mashine pepe:Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:

Matokeo:

TTFB:

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
TTFB ya wastani ya IIS ndiyo ndogo zaidi, 0,5ms, dhidi ya 1,4ms kwa Apache na 4ms kwa Nginx.

Kupitia:

Kwanza, hebu tuangalie jinsi kila seva inavyoweka sawa kulingana na idadi ya cores.

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Grafu inaonyesha idadi ya simu za wanaojaribu kwa seva ya wavuti na muda wa kusubiri. Grafu inaonyesha kuwa NGINX ilichakata 98% ya maombi yote, ikitoa tovuti kwa 20ms au chini. IIS, kama Apache, ilikamilisha 5% ya mwisho ya simu zote katika 76ms na 14ms, mtawalia.

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Grafu inaonyesha wastani wa muda wa kuchakata ombi moja wakati wa jaribio la mfadhaiko.

Kama unavyoona kutoka kwa grafu, IIS ililipua Apache na Nginx, ikipunguza kasi chini ya mzigo mkubwa. 

IIS ilipendelea kwa uwazi cores 4 zaidi ya XNUMX, ikionyesha muda wa chini kwenye XNUMX, lakini pia haikupendelea msingi mmoja.

Mizani ya NGINX katika cores zote 8, na kwa Apache, hali ya msingi mmoja inaonekana kuwa chaguo bora zaidi.

Scalability:

Nginx:

Sasa hebu tuangalie scalability katika suala la frequency na idadi ya cores. 

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Nginx haikupitisha majaribio yenye kikomo cha 1% kwa cores 4 na 1; ilipozidi maombi 2000, ilikatisha muunganisho na kijaribu.

Apache:

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Apache, kama Nginx, baada ya kushughulikia maombi 2500, aliacha na kufunga muunganisho. Apache ilifeli jaribio kwenye cores 8, 4 na 1 na kikomo cha 1%, lakini kwa kuongezea pia ilishindwa mtihani na kikomo cha 5% kwenye msingi mmoja, ambayo ni mbaya zaidi kuliko Nginx.

IIS:

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Wakati wa majaribio, IIS ilikusanya foleni kubwa ya maombi lakini ilishughulikia kila moja yao. Inavyoonekana, nje ya kisanduku hakuna muda wa kuisha uliowekwa kwa usindikaji wa ombi.

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Chati inaonyesha muda uliochukuliwa kukamilisha jaribio. Mipangilio ya majaribio ya kipuuzi kabisa ilitupwa. Mchoro unaonyesha jinsi IIS inavyohitaji sana linapokuja suala la vifaa, na jinsi NGINX ilivyo ya ajabu.

Kiwango kutoka kwa diski:

Nginx:

Sasa hebu tuangalie scalability kwa suala la mzunguko na idadi ya cores na kasi ya disk. 

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Wakati huu Nginx ilishindwa majaribio 4 badala ya mbili.

Apache:

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
Apache ilifeli idadi sawa ya majaribio kama mara ya mwisho.

IIS:

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:
IIS inaonyesha grafu inayokaribia kufanana, kana kwamba hakuna vizuizi vya diski. Kwa ujumla, graphics za seva zote hazibadilika sana, ambayo ina maana kwamba kila mmoja wao alihifadhi data tuli katika RAM na kuitumikia kutoka hapo. Hapa tunaona kizuizi kikuu - seva ya wavuti yenyewe.

Ni mapema mno kutoa hitimisho kulingana na jaribio hili; bado hatujajaribu HTTPS, mbano na HTTP/2 kwa cheti cha moja kwa moja kutoka Let's Encrypt. Tutazungumza juu ya hili katika makala inayofuata.

Vita vya seva za WEB. Sehemu ya 1 - HTTP haijaguswa:

Chanzo: mapenzi.com

Kuongeza maoni