Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:

Ma kēia ʻatikala e hoʻāʻo mākou i ko mākou lima i ka ʻenekini hoʻohuli, e ʻōlelo paha kekahi. E lawe mākou i ko mākou mau lima lepo ma lalo o ka pā o kēlā me kēia kikowaena pūnaewele, e hoʻohana iā lākou i nā ala ʻaʻole e hoʻohana ʻia e kekahi.

ʻO kēia ho'āʻo he ana ia o ka lio spherical i loko o ka hakahaka,ʻaʻohe mea'ē aʻe ma mua o kaʻikepili i loaʻa, a i kēia manawaʻaʻole mākou iʻike i ka mea e hana ai me ia.

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:

Poaʻina

ʻO ka ʻōnaehana hana no Nginx a me Apache ʻo Ubuntu 18.04 LTS, no ka IIS Windows Server Core 2019. Ma mua o nā hoʻokolohua, loaʻa nā ʻōnaehana hana āpau i nā mea hou loa e like me Dekemaba 04.12.2019, XNUMX.

Ua hana ʻia nā hoʻāʻo ma HTTP wale nō. Holo kēlā me kēia pūnaewele pūnaewele i ka ʻaoʻao hoʻokahi, kahi hoʻohālikelike Jekyll manuahi mai Codrops. loulou. Ua pio ka ho'opi'i gzip o kēlā me kēia kikowaena pūnaewele.

Ua hana ʻia ka hoʻāʻo throughput me Httpd-tools me nā hoʻopaʻapaʻa:

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

Ua kaupalena ʻia nā kikowaena i ka 10, 5, a me 1 pakeneka o ke kumu ma 8, 4, a me hoʻokahi kumu. ʻO ka papa hoʻāʻo he kamepiula me 9900K@5400MHz, ʻo ia ka mea e loaʻa ana i ka server ka palena 10% e loaʻa ana ma kahi o 540MHz no ke kiko.

Ua hoʻokō ʻia ka hoʻāʻo TTFB i ka wā i hoʻomaka mua ai ka server a ana ʻia me DevTools; ma hope o ka loaʻa ʻana o ka hopena, ua hoʻopau ʻia ke kikowaena a hoʻihoʻi ʻia i ka ʻaoʻao mua e hoʻopau i ke ʻano o nā ʻano huna.

Aia ka mea ho'āʻo a me ke kikowaena pūnaewele ma ka pūʻali hoʻokahi a ma ka hoʻololi virtual hoʻokahi.

No ka loiloi koke ʻana i ka subsystem disk, nā hopena o ka ATTO a me CrystalDIskMark benchmarks i mea e loaʻa ai kahi manaʻo o nā bottlenecks.

ʻIke i lawe ʻia mai ka mīkini virtual:Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:

Nā hopena:

TTFB:

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
ʻO ka awelika TTFB no IIS ka mea liʻiliʻi loa, 0,5ms, me 1,4ms no Apache a me 4ms no Nginx.

Hana:

ʻO ka mea mua, e nānā i ka maikaʻi o kēlā me kēia kikowaena kikowaena ma muli o ka helu o nā cores.

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Hōʻike ka pakuhi i ka helu o nā kelepona hoʻāʻo i ke kikowaena pūnaewele a me ka latency. Hōʻike ka pakuhi ua hana ʻo NGINX i ka 98% o nā noi āpau, e hāʻawi ana i ka pūnaewele ma 20ms a i ʻole. ʻO IIS, e like me Apache, ua hoʻopau i ka 5% hope loa o nā kelepona āpau ma 76ms a me 14ms, kēlā me kēia.

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Hōʻike ka pakuhi i ka manawa hana maʻamau no hoʻokahi noi i ka wā hoʻāʻo koʻikoʻi.

E like me kāu e ʻike ai mai nā kiʻi, ua puhi ʻo IIS iā Apache a me Nginx, e lohi nui ana ma lalo o ka ukana kiʻekiʻe. 

Ua makemake nui ʻo IIS i nā cores 4 ma mua o XNUMX, e hōʻike ana i nā latencies haʻahaʻa ma XNUMX, akā ʻaʻole makemake nui i hoʻokahi kumu.

Hoʻopili maikaʻi ʻo NGINX ma waena o nā cores 8 a pau, a no Apache, ʻo ka hiʻohiʻona hoʻokahi-core ke koho maikaʻi loa.

Hiki ke hoʻonui:

nginx:

I kēia manawa, e nānā kākou i ka scalability ma ke ʻano o ka pinepine a me ka helu o nā cores. 

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
ʻAʻole i hele ʻo Nginx i nā hoʻokolohua me ka palena o 1% no 4 a me 1 cores; i ka wā i ʻoi aku ai ma mua o 2000 mau noi, ua hoʻopau ia i ka pilina me ka mea hōʻike.

Apache:

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
ʻO Apache, e like me Nginx, ua hoʻoponopono i nā noi 2500, haʻalele a pani i ka pilina. Ua hāʻule ʻo Apache i ka hoʻāʻo ma 8, 4 a me 1 cores me ka palena o 1%, akā i ka hoʻohui ʻana i kēia, ʻaʻole i hāʻule i ka hoʻāʻo me ka palena 5% ma hoʻokahi kumu, ʻoi aku ka maikaʻi ma mua o Nginx

IIS:

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
I ka wā o nā hoʻāʻo, ua hōʻiliʻili ʻo IIS i ka nui o nā noi akā ua hoʻoponopono ʻia kēlā me kēia. ʻIke ʻia, ma waho o ka pahu ʻaʻohe manawa manawa i hoʻonohonoho ʻia no ka hana noi.

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Hōʻike ka pakuhi i ka manawa e hoʻopau ai i ka hoʻāʻo. Ua hoʻolei ʻia nā hoʻonohonoho hoʻāʻo lapuwale. Hōʻike ke kiʻikuhi i ka koi ʻana o IIS i ka wā e pili ana i ka lako, a me ka nani o NGINX.

Scalability mai ka diski:

nginx:

I kēia manawa, e nānā kākou i ka scalability ma ke ʻano o ka pinepine a me ka helu o nā cores a me ka wikiwiki disk. 

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
ʻO kēia manawa ua hāʻule ʻo Nginx i nā hoʻokolohua 4 ma mua o ʻelua.

Apache:

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Ua hāʻule ʻo Apache i ka helu like o nā hoʻāʻo e like me ka manawa i hala.

IIS:

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:
Hōʻike ʻo IIS i kahi pakuhi ʻaneʻane like, me he mea lā ʻaʻohe kapu disk. Ma keʻano laulā, ʻaʻole i loli nui nā kiʻi o nā kikowaena āpau, ʻo ia ka mea i hūnā ʻia kēlā me kēia o lākou i ka ʻikepili static i RAM a lawelawe ʻia mai laila. Maanei mākou e ʻike ai i ka bottleneck nui - ke kikowaena pūnaewele ponoʻī.

ʻAʻole hiki ke huki i nā hopena e pili ana i kēia hoʻāʻo; ʻaʻole mākou i hoʻāʻo iā HTTPS, compression a me HTTP/2 me kahi palapala ola mai Let's Encrypt. E kamaʻilio mākou e pili ana i kēia ma ka ʻatikala aʻe.

Kaua o nā kikowaena WEB. Mahele 1 - HTTP ma waho o ka pa:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka