Cloudflare e tlohile ho NGINX ho ea ho proxy ea eona ea Pingora, e ngotsoeng ka Rust

Cloudflare e phatlalalitse phetoho ea marang-rang a eona a ho fana ka litaba ho sebelisa proxy ea Pingora, e ngotsoeng ka puo ea Rust. Moemeli e mocha o nkela sebaka sa NGINX se thehiloeng ho seva ka mangolo a Lua, 'me o sebetsana le likopo tse fetang libilione ka letsatsi. Hoa hlokomeleha hore ho fetela ho moemeli ea khethehileng ha hoa lumelloa feela ho kenya ts'ebetsong likarolo tse ncha le ho eketsa ts'ireletso ka lebaka la ts'ebetso e sireletsehileng ea mohopolo, empa hape e lebisitse ho keketseho e kholo ea ts'ebetso le ho boloka mehloli - tharollo e thehiloeng Pingora ha e hloke tšebeliso. ea Lua, ka hona e ja 70% tlase lisebelisoa tsa CPU le 67% e fokolang ea memori ha e ntse e sebetsana le palo e lekanang ea sephethephethe.

Ka nako e telele, tsamaiso ea proxying sephethephethe pakeng tsa basebelisi le li-server tsa ho qetela tse thehiloeng ho NGINX le Lua scripts li ile tsa khotsofatsa litlhoko tsa Cloudflare, empa ha marang-rang a ntse a hōla 'me ho rarahana ha oona ho ntse ho eketseha, tharollo ea bokahohle e ile ea fetoha e sa lekaneng, ka bobeli ho latela tshebetso le ka lebaka la mefokolo ka extensibility le ho kenngwa tshebetsong ha menyetla e mecha bakeng sa bareki. Haholo-holo, ho ne ho e-na le mathata a ho eketsa ts'ebetso ho feta tsela e bonolo ea heke le ho leka-lekanya mojaro. Ka mohlala, ho ile ha hlokahala, haeba seva se hlōleha ho sebetsana le kopo, ho khutlisetsa kopo ho seva se seng, ho fana ka sete e fapaneng ea lihlooho tsa HTTP.

Ho e-na le mohaho o arolang likōpo ka mekhoa e fapaneng ea basebetsi, Pingora e sebelisa mohlala o nang le mefuta e mengata, eo ka linyeoe tsa tšebeliso ea Cloudflare (matšoenyeho a phahameng a sephethephethe se tsoang libakeng tse fapaneng tse nang le phetoho e kholo ea lipalo-palo) e bontšitse kabo e atlehileng haholoanyane ea lisebelisoa pakeng tsa li-cores tsa CPU. Haholo-holo, ho tlama ha nginx ho likopo tse sa leka-lekaneng lits'ebetsong ho ile ha fella ka mojaro o sa leka-lekaneng ho li-cores tsa CPU, ho fella ka likopo tse matla haholo le ho thibela I/O ho liehisa ts'ebetso ea likopo tse ling. Ntle le moo, ho tlama letamo la khokahano ho lits'ebetso tsa motshwari ha hoa ka ha lumella tšebeliso e ncha ea likhokahano tse seng li thehiloe ho tsoa lits'ebetsong tse ling tsa mohlokomeli, e leng ho fokotsang katleho ha ho na le palo e kholo ea lits'ebetso tsa mohlokomeli.

NGINX:

Cloudflare e tlohile ho NGINX ho ea ho proxy ea eona ea Pingora, e ngotsoeng ka Rust

Pingora:

Cloudflare e tlohile ho NGINX ho ea ho proxy ea eona ea Pingora, e ngotsoeng ka Rust

Ho kenngwa tshebetsong ha Pingora ho nolofaleditse ho fokotsa palo ya ho kenngwa ha dikgokelo tse ntjha ka makgetlo a 160 le ho eketsa karolo ya dikopo tse sebediswang hape ho tloha ho 87.1% ho ya ho 99.92%. Ntle le ho fokotsa likhokahano le ts'ebeliso e ntle ea li-CPU cores, ntlafatso ea ts'ebetso ea proxy e ncha e bile haholo-holo ka lebaka la ho tlosoa ha li- handler tsa Lua tse sebelisoang ka nginx.

Puo ea Rust e khethiloe ho finyella ts'ebetso e phahameng e kopantsoeng le ho fumaneha ha lisebelisoa ho netefatsa ts'ebetso e sireletsehileng ka mohopolo. Ho boleloa hore ho sa tsotellehe lienjiniere tse nang le tsebo e phahameng ea Cloudflare le ho hlahloba khoutu e ngotsoeng ka puo ea C, ho ne ho ke ke ha khoneha ho qoba liphoso tse lebisang mathateng a ho hopola (mohlala, ho ba kotsing ho HTML parser). Ha e le khoutu e ncha, e bua ka linyeoe tsa ho hlahloba liphoso tsa Pingora, tse ileng tsa hlaha ha li bakoe ke mathata a ts'ebeliso, empa ke phoso ho kernel ea Linux le ho hlōleha ha hardware.

Ho phaella moo, re ka hlokomela tlhaloso ea Linus Torvalds, e hlahisitsoeng kopanong ea Open-Source Summit Europe e ntseng e tsoela pele matsatsing ana, mabapi le ho kenyelletsoa ha tšehetso bakeng sa puo ea Rust ho Linux kernel. Li-patches bakeng sa ho nts'etsapele bakhanni ba lisebelisoa ka puo ea Rust ha lia kenyelletsoa kernel ea 6.0, empa ho latela Linus, li tla amoheloa ka har'a kernel ea 6.1; a ke ke a liehisa ho kopanngoa. E le tšusumetso ea ho eketsa ts'ehetso bakeng sa Rust, ntle le phello e ntle ho ts'ireletso, Linus e boetse e qotsa monyetla oa ho eketsa thahasello ea ho sebetsa motheong oa barupeluoa ba bacha, e leng ntho ea bohlokoa tabeng ea botsofali ba khale.

Source: opennet.ru

Eketsa ka tlhaloso