Cloudflare kaloi nga NGINX në proxy-in e saj Pingora, e shkruar në gjuhën Rust.

Kompania Cloudflare njoftoi se ka transferuar rrjetin e saj tĂ« shpĂ«rndarjes sĂ« pĂ«rmbajtjes nĂ« pĂ«rdorimin e proxy-t Pingora, i shkruar nĂ« Rust. Proxy i ri zĂ«vendĂ«soi konfigurimin bazuar nĂ« serverin NGINX me skripta Lua, dhe pĂ«rpunon mĂ« shumĂ« se njĂ« trilion kĂ«rkesa nĂ« ditĂ«. VĂ«rehet se kalimi nĂ« njĂ« proxy tĂ« specializuar jo vetĂ«m qĂ« mundĂ«soi implementimin e mundĂ«sive tĂ« reja dhe rritjen e sigurisĂ« pĂ«rmes menaxhimit tĂ« sigurt tĂ« memories, por gjithashtu çoi nĂ« njĂ« rritje tĂ« konsiderueshme tĂ« performancĂ«s dhe kursimeve tĂ« burimeve — zgjidhja e bazuar nĂ« Pingora nuk kĂ«rkon pĂ«rdorimin e Lua-s, prandaj konsumon 70% mĂ« pak burime CPU dhe 67% mĂ« pak memorie nĂ« pĂ«rpunimin e tĂ« njĂ«jtĂ«s sasi trafiku.

Për një kohë të gjatë, sistemi për proksimin e trafikut midis përdoruesve dhe përfundimtarëve serverëve të bazuar në NGINX dhe skriptet Lua përmbushnin nevojat e Cloudflare, por me rritjen e rrjetit dhe kompleksitetit të tij, një zgjidhje universale u tregua e pamjaftueshme, si përsa i përket performancës ashtu edhe për shkak të kufizimeve në shtrirjen dhe implementimin e mundësive të reja për klientët. Veçanërisht, u shfaqën vështirësi në shtimin e funksionaliteteve që tejkalonin thjesht një portë dhe balancuesin e ngarkesës. Për shembull, u shfaq nevoja që, në rast të dështimit të përpunimit të një kërkese serverin të ridrejtohej kërkesa në një server tjetër, duke i furnizuar atij një grup tjetër titujsh HTTP.

Në vend të arkitekturës me ndarjen e kërkesave në procese të ndara përpunues (worker), Pingora aplikon një model shumëfilësh, i cili në skenarët e përdorimit të Cloudflare (koncentrim i lartë i trafik nga faqe të ndryshme me një devijim statistik të madh) ka treguar një shpërndarje më efikase të burimeve midis bërthamave të CPU. Në veçanti, lidhja e kërkesave të pambushura me proceset në nginx çonte në një ngarkesë të pamjaftueshme mbi bërthamat e CPU, rezultati i së cilës ishte se kërkesat me konsum të lartë të burimeve dhe hyrja e bllokuar reduktonin përpunimin e kërkesave të tjera. Për më tepër, lidhja e grupit të lidhjeve me proceset përpunues nuk lejonte riciklimin e lidhjeve tashmë të vendosura nga proceset e tjera përpunues, duke ulur kështu efikasitetin e punës në një numër të madh procesesh përpunues.

NGINX:

Cloudflare kaloi nga NGINX në proxy-in e saj Pingora, e shkruar në gjuhën Rust.

Pingora:

Cloudflare kaloi nga NGINX në proxy-in e saj Pingora, e shkruar në gjuhën Rust.

Implementimi i Pingora lejohet reduktimin e numrit të operacioneve të vendosjes së lidhjeve të reja me 160 herë dhe rritjen e përqindjes së kërkesave të ricikluara nga 87.1% në 99.92%. Përveç reduktimit të lidhjeve të ricikluara dhe përdorimit më efikas të bërthamave të CPU, rritësit e performancës së proxy të ri, kryesisht, kontribuan në heqjen e përpunuesve të ngadalshëm të përdorur me nginx në gjuhën Lua.

Gjuha Rust u zgjodh si një mundësi për të arritur performancë të lartë në kombinim me mjete për të siguruar një menaxhim të sigurt të memories. Po ashtu, përmendet se pavarësisht nga kualifikimi i lartë i inxhinierëve të Cloudflare dhe rishikimi i kodit të shkruar në C, nuk u arrit të evitoheshin gabimet që çonin në probleme me memory (për shembull, një vulnerabilitet në parserin HTML). Sa i përket kodit të ri, u përmendën raste sigurie në Pingora, të cilat u treguan të shkaktuara nga gabime në bërthamë Linux dhe dështime harduerike.

Shtesë, mund të theksohet, siç u përmend në konferencën që po zhvillohet këto ditë Open-Source Summit Europe, komenti i Linus Torvalds rreth përfshirjes së mbështetjes për gjuhën Rust në bërthamën Linux. Në bërthamën 6.0, patch-et për zhvillimin e drejtorive të pajisjeve në gjuhën Rust nuk u përfshinë, por sipas Linus-it, ato me shumë mundësi do të pranohen në bërthamën 6.1, dhe ai nuk ka për qëllim të vonojë integrimin. Si një motiv për shtimin e mbështetjes për Rust, përveç ndikimit pozitiv në sigurinë, Linus përmEND edhe mundësinë për të rritur interesin në punën mbi kernel nga pjesëmarrës të rinj, që është aktuale në kushtet e plakjes së veteranëve.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster