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