Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:

Niini nga artikulo atong sulayan ang atong kamot sa reverse engineering, mahimong isulti sa usa. Atong kuhaon ang atong hugaw nga mga kamot sa ilawom sa tabon sa matag web server, nga pahimuslan sila sa mga paagi nga walay bisan kinsa nga magpahimulos.

Kini nga pagsulay usa ka pagsukod sa usa ka spherical nga kabayo sa usa ka haw-ang, wala’y labi pa sa datos nga nakuha, ug karon wala kami mahibal-an kung unsa ang buhaton niini.

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:

Pamaagi

Ang operating system alang sa Nginx ug Apache mao ang Ubuntu 18.04 LTS, para sa IIS Windows Server Core 2019. Sa wala pa ang mga pagsulay, ang tanan nga mga operating system nakadawat sa pinakabag-o nga mga update sa Disyembre 04.12.2019, XNUMX.

Ang mga pagsulay gihimo lamang sa HTTP. Ang matag web server nagpadagan sa parehas nga panid, usa ka libre nga template sa Jekyll gikan sa Codrops. link. Ang matag web server adunay gzip compression nga gi-disable.

Ang throughput test gihimo sa Httpd-tools nga adunay mga argumento:

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

Ang mga server limitado sa 10, 5, ug 1 porsyento sa core sa 8, 4, ug usa ka core. Ang test bench usa ka computer nga adunay 9900K@5400MHz, nga nagpasabot nga ang server nga nakadawat ug 10% nga limitasyon makadawat ug mga 540MHz kada core.

Ang pagsulay sa TTFB gihimo sa dihang ang server unang nag-boot ug gisukod gamit ang DevTools; human madawat ang resulta, ang server gipalong ug gibalik sa miaging checkpoint aron mawagtang ang dagway sa bisan unsang matang sa mga cache.

Ang tester ug ang web server anaa sa samang host ug sa samang virtual switch.

Aron masusi dayon ang disk subsystem, ang mga resulta sa ATTO ug CrystalDIskMark nga mga benchmark aron adunay ideya sa mga bottleneck.

Ang datos nga gikuha gikan sa virtual machine:Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:

Resulta:

TTFB:

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Ang kasagaran nga TTFB para sa IIS mao ang pinakagamay, 0,5ms, kumpara sa 1,4ms para sa Apache ug 4ms para sa Nginx.

Pinaagi sa:

Una, atong tan-awon kung unsa ka maayo ang matag server nga timbangan base sa gidaghanon sa mga cores.

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gipakita sa graph ang gidaghanon sa mga tawag sa tester sa web server ug latency. Gipakita sa graph nga giproseso sa NGINX ang 98% sa tanan nga mga hangyo, nga naghatud sa site sa 20ms o dili kaayo. Ang IIS, sama sa Apache, nakakompleto sa katapusang 5% sa tanang tawag sa 76ms ug 14ms, matag usa.

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Ang graph nagpakita sa kasagaran nga oras sa pagproseso alang sa usa ka hangyo atol sa usa ka stress test.

Sama sa imong makita gikan sa mga graph, ang IIS mihuyop sa Apache ug Nginx, nga mihinay pag-ayo ubos sa taas nga karga. 

Ang IIS tin-aw nga gipalabi ang 4 nga mga cores sa XNUMX, nga nagpakita sa mas ubos nga mga latency sa XNUMX, apan dili usab kusog nga mipabor sa usa ka core.

Ang NGINX nga mga timbangan maayo sa tanan nga 8 nga mga cores, ug alang sa Apache, ang single-core nga senaryo daw mao ang pinakamaayo nga pagpili.

Scalability:

Nginx:

Karon atong tan-awon ang scalability sa termino sa frequency ug gidaghanon sa mga cores. 

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Ang Nginx wala makapasar sa mga pagsulay nga adunay limitasyon nga 1% alang sa 4 ug 1 nga mga cores; kung kini milapas sa 2000 nga mga hangyo, gitapos ang koneksyon sa tester.

Apache:

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Ang Apache, sama sa Nginx, nga nagproseso sa 2500 nga mga hangyo, gibiyaan ug gisira ang koneksyon. Ang Apache napakyas sa pagsulay sa 8, 4 ug 1 nga mga core nga adunay limitasyon nga 1%, apan dugang pa nga napakyas usab kini sa pagsulay nga adunay 5% nga limitasyon sa usa ka core, nga mas grabe pa kay sa Nginx

IIS:

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Atol sa mga pagsulay, ang IIS nagtigum og usa ka dako nga pila sa mga hangyo apan giproseso ang matag usa niini. Dayag, sa gawas sa kahon walay mga timeout nga gitakda alang sa pagproseso sa hangyo.

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gipakita sa tsart ang oras nga gikinahanglan aron makompleto ang pagsulay. Ang bug-os nga binuang nga mga pagsumpo sa pagsulay gisalikway. Gipakita sa diagram kung unsa ka lisud ang IIS kung bahin sa hardware, ug kung unsa ka nindot ang NGINX.

Scalability gikan sa disk:

Nginx:

Karon atong tan-awon ang scalability sa termino sa frequency ug gidaghanon sa mga cores ug disk speed. 

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Niining higayona ang Nginx napakyas sa 4 nga mga pagsulay imbis nga duha.

Apache:

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Ang Apache napakyas sa parehas nga gidaghanon sa mga pagsulay sama sa miaging higayon.

IIS:

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:
Gipakita sa IIS ang halos parehas nga graph, ingon nga wala’y mga pagdili sa disk. Sa kinatibuk-an, ang mga graphic sa tanan nga mga server wala kaayo nagbag-o, nga nagpasabut nga ang matag usa kanila nag-cache sa static nga data sa RAM ug gisilbi kini gikan didto. Dinhi atong makita ang nag-unang bottleneck - ang web server mismo.

Sayo pa kaayo ang paghimog mga konklusyon base sa kini nga pagsulay; wala pa namon gisulayan ang HTTPS, compression ug HTTP/2 nga adunay usa ka buhi nga sertipiko gikan sa Let's Encrypt. Atong hisgotan kini sa sunod nga artikulo.

Gubat sa mga WEB server. Bahin 1 – HTTP nga wala mahikap:

Source: www.habr.com

Idugang sa usa ka comment