Cloudflare gbanwere site na NGINX gaa na Pingora proxy nke ya, nke edere na Rust

Cloudflare kwuputara mgbanwe nke netwọk nnyefe ọdịnaya ya iji jiri proxy Pingora, nke edere n'asụsụ Rust. Ọhụrụ proxy na-eji ederede Lua dochie nhazi nke sava NGINX, ma na-eme ihe karịrị arịrịọ puku ijeri ijeri kwa ụbọchị. A na-achọpụta na mgbanwe na proxy pụrụ iche kwere ka ọ bụghị nanị iji mejuputa atụmatụ ọhụrụ na ịbawanye nchebe n'ihi ọrụ nchekwa nchekwa, ma mee ka mmụba dị ịrịba ama na arụmọrụ na nchekwa akụ - ngwọta dabeere na Pingora anaghị achọ iji ya mee ihe. nke Lua, ya mere na-eri 70% obere ego CPU na 67% obere ebe nchekwa mgbe ị na-ahazi otu ego okporo ụzọ.

Ruo ogologo oge, usoro maka proxying okporo ụzọ n'etiti ndị ọrụ na ndị ọrụ njedebe na-adabere na NGINX na Lua scripts na-egbo mkpa nke Cloudflare, ma ka netwọk ahụ na-eto eto na mgbagwoju anya ya na-abawanye, ngwọta zuru ụwa ọnụ wee bụrụ nke na-ezughị ezu, ma n'usoro nke arụmọrụ na n'ihi njedebe na extensibility na mmejuputa ohere ọhụrụ maka ndị ahịa. Karịsịa, enwere ihe ịma aka n'ịgbakwunye ọrụ karịrị ụzọ ọnụ ụzọ dị mfe na nhazi ibu. Dịka ọmụmaatụ, ọ dị mkpa, ọ bụrụ na ihe nkesa ahụ emeghị arịrịọ, iziga arịrịọ ahụ na ihe nkesa ọzọ, na-enye ya ụdị isi HTTP dị iche iche.

Kama usoro ihe owuwu nke na-ekewa arịrịọ n'ime usoro ndị ọrụ dị iche iche, Pingora na-eji ụdị multi-threaded, nke na Cloudflare na-eji okwu ikpe (oke elu nke okporo ụzọ sitere na saịtị dị iche iche nwere nnukwu mgbanwe ndekọ ọnụ ọgụgụ) gosipụtara nkesa nke ọma nke ọma n'etiti CPU cores. Karịsịa, njide nginx nke arịrịọ na-enweghị isi maka usoro mere ka ibu na-enweghị isi na cores CPU, na-ebute arịrịọ kpụ ọkụ n'ọnụ na igbochi I / O na-ebelata nhazi nke arịrịọ ndị ọzọ. Na mgbakwunye, ijikọ ọdọ mmiri njikọ na usoro njikwa anabataghị iji njikọ emegoro emegoro site na usoro njikwa ndị ọzọ, nke na-ebelata arụmọrụ mgbe enwere ọtụtụ usoro njikwa.

NGINX:

Cloudflare gbanwere site na NGINX gaa na Pingora proxy nke ya, nke edere na Rust

Pingora:

Cloudflare gbanwere site na NGINX gaa na Pingora proxy nke ya, nke edere na Rust

Mmezu nke Pingora mere ka o kwe omume ibelata ọnụ ọgụgụ nke nrụnye nke njikọ ọhụrụ site na ugboro 160 ma mee ka òkè nke arịrịọ ejiri mee ihe site na 87.1% ruo 99.92%. Na mgbakwunye na ibelata njikọta na iji cores CPU rụọ ọrụ nke ọma, nkwalite arụmọrụ proxy ọhụrụ ahụ bụ n'ihi mwepụ nke ndị na-eji Lua ngwa ngwa ejiri nginx.

A họọrọ asụsụ nchara iji nweta arụmọrụ dị elu jikọtara ya na nnweta ngwaọrụ iji hụ na arụ ọrụ nchekwa na ebe nchekwa. A na-ekwu na n'agbanyeghị ndị injinia ruru eru nke Cloudflare na nyochaa koodu edere n'asụsụ C, ọ gaghị ekwe omume izere njehie na-eduga ná nsogbu ebe nchekwa (dịka ọmụmaatụ, adịghị ike na HTML parser). Banyere koodu ọhụrụ ahụ, ọ na-ekwu maka ikpe nke nyocha ọdịda na Pingora, nke tụgharịrị na ọ bụghị nsogbu dị na ngwa ahụ, kama site na njehie na kernel Linux na ọdịda ngwaike.

Na mgbakwunye, anyị nwere ike ịhụ nkọwa nke Linus Torvalds, nke ekwuputara na ogbako Open-Source Summit Europe na-eme ụbọchị ndị a, gbasara ntinye nkwado maka asụsụ nchara na Linux kernel. Agụnyeghị ihe nkedo maka ndị ọkwọ ụgbọ ala na-emepe emepe n'asụsụ Rust na kernel 6.0, mana dịka Linus siri kwuo, a ga-anabata ha na kernel 6.1; ọ gaghị egbu oge njikọta. Dị ka ihe mkpali maka ịgbakwunye nkwado maka Rust, na mgbakwunye na mmetụta dị mma na nchekwa, Linus na-ekwupụtakwa ohere ịbawanye mmasị na-arụ ọrụ na isi nke ndị sonyere ọhụrụ, nke dị mkpa na ọnọdụ nke ndị agadi na-eme agadi.

isi: opennet.ru

Tinye a comment