Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:

Dina artikel ieu kami baris coba leungeun kami dina rékayasa sabalikna, salah sahiji bisa disebutkeun. Urang bakal meunang leungeun kotor urang handapeun tiung unggal web server, exploiting aranjeunna dina cara nu euweuh bakal pernah mangpaatkeun.

Tés ieu mangrupikeun pangukuran kuda buleud dina ruang hampa, teu langkung ti data anu dicandak, sareng ayeuna urang henteu terang naon anu kudu dilakukeun sareng éta.

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:

Téhnik

Sistem operasi pikeun Nginx sareng Apache nyaéta Ubuntu 18.04 LTS, pikeun IIS Windows Server Core 2019. Sateuacan tés, sadaya sistem operasi nampi apdet pangénggalna ti 04.12.2019 Désémber XNUMX.

Tés dilaksanakeun sacara éksklusif ngaliwatan HTTP. Unggal server wéb ngajalankeun halaman anu sami, template Jekyll gratis ti Codrops. link. Unggal server wéb ngagaduhan komprési gzip ditumpurkeun.

Uji throughput dilakukeun nganggo Httpd-tools kalayan argumen:

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

Server dugi ka 10, 5, sareng 1 persén inti dina 8, 4, sareng hiji inti. Bangku test éta komputer kalawan 9900K@5400MHz, nu hartina server narima 10% wates narima ngeunaan 540MHz per inti.

Tes TTFB dilaksanakeun nalika server mimiti boot sareng diukur nganggo DevTools saatos nampi hasilna, server dipareuman sareng digulung deui ka tempat pamariksaan sateuacana pikeun ngaleungitkeun sagala jinis cache.

Panguji sareng pangladén wéb aya dina host anu sami sareng dina saklar virtual anu sami.

Pikeun langsung meunteun subsistem disk, hasil patokan ATTO sareng CrystalDIskMark supados gaduh ide ngeunaan bottlenecks.

Data dicokot tina mesin virtual:Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:

Hasil:

TTFB:

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Rata-rata TTFB pikeun IIS nyaéta pangleutikna, 0,5ms, versus 1,4ms pikeun Apache sareng 4ms pikeun Nginx.

Hasilna:

Kahiji, hayu urang nempo kumaha ogé unggal server skala dumasar kana jumlah cores.

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Grafik nunjukkeun jumlah telepon panguji ka pangladén wéb sareng latén. Grafik nunjukkeun yén NGINX ngolah 98% tina sadaya pamundut, nganteurkeun situs dina 20ms atanapi kirang. IIS, sapertos Apache, ngarengsekeun 5% terakhir sadaya telepon dina 76ms sareng 14ms, masing-masing.

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Grafik nunjukkeun rata-rata waktos ngolah pikeun hiji pamundut salami tés setrés.

Sakumaha anjeun tiasa tingali tina grafik, IIS ngaleungitkeun Apache sareng Nginx, ngalambatkeun sacara signifikan dina beban anu luhur. 

IIS jelas pikaresep 4 cores leuwih XNUMX, némbongkeun latency handap dina XNUMX, tapi ogé teu niatna ni'mat hiji inti.

Skala NGINX saé dina sadaya 8 teras, sareng pikeun Apache, skénario inti tunggal sigana mangrupikeun pilihan anu pangsaéna.

Skalabilitas:

nginx:

Ayeuna hayu urang tingali skalabilitas dina hal frékuénsi sareng jumlah inti. 

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Nginx teu lulus tés kalawan wates 1% pikeun 4 jeung 1 cores lamun ngaleuwihan 2000 requests, éta terminated sambungan kalawan tester.

Apache:

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Apache, sapertos Nginx, parantos ngolah 2500 pamundut, nyerah sareng nutup sambunganna. Apache gagal dina tés 8, 4 sareng 1 inti kalayan wates 1%, tapi salian ti éta ogé gagal tés kalayan wates 5% dina hiji inti, anu langkung parah tibatan Nginx.

Iis:

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Salila tés, IIS ngumpulkeun antrian anu ageung, tapi masing-masing diolah. Tétéla, out of the box euweuh timeouts disetel pikeun ngolah pamundut.

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Bagan nunjukkeun waktos anu diperyogikeun pikeun ngarengsekeun tés. Konfigurasi tés lengkep absurd dipiceun. Diagram nunjukeun kumaha nungtut IIS lamun datang ka hardware, jeung kumaha éndah NGINX.

Skalabilitas tina disk:

nginx:

Ayeuna hayu urang tingali skalabilitas dina hal frékuénsi sareng jumlah inti sareng kacepetan disk. 

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Waktos ieu Nginx gagal 4 tés tinimbang dua.

Apache:

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Apache gagal jumlah tés anu sami sareng waktos terakhir.

Iis:

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:
Iis nembongkeun grafik ampir sarua, saolah-olah euweuh larangan disk. Sacara umum, grafik sadaya server henteu seueur robih, anu hartosna masing-masing nyéépkeun data statik dina RAM sareng dilayanan ti dinya. Di dieu urang ningali bottleneck utama - server wéb sorangan.

Teuing teuing pikeun nyieun kacindekan dumasar kana tés ieu; kami henteu acan nguji HTTPS, komprési sareng HTTP / 2 kalayan sertipikat langsung ti Hayu Encrypt. Urang bakal ngobrol ngeunaan ieu dina artikel salajengna.

Patempuran server WEB. Bagian 1 - HTTP kaluar tina touch:

sumber: www.habr.com

Tambahkeun komentar