Cloudflare har övergÄtt frÄn NGINX till sin egen proxy Pingora, skriven i Rust.

Cloudflare har meddelat att de har överfört sitt nÀtverk för innehÄllsleverans till att anvÀnda proxyprogrammet Pingora, skrivet i Rust. Den nya proxyn har ersatt konfigurationen baserad pÄ NGINX med Lua-skript och hanterar mer Àn en biljon förfrÄgningar om dagen. Det pÄpekas att övergÄngen till en specialiserad proxy inte bara har möjliggjort nya möjligheter och ökat sÀkerheten genom sÀker hantering av minnet, utan Àven lett till en betydande ökning av prestandan och resursbesparingar - lösningen baserad pÄ Pingora krÀver inte anvÀndning av Lua, vilket gör att den förbrukar 70% mindre CPU-resurser och 67% mindre minne vid behandling av samma trafikvolym.

Under en lÄng tid uppfyllde systemet för att proxy trafik mellan anvÀndare och slutpunkter servrar baserat pÄ NGINX och Lua-skript Cloudflares behov, men med nÀtverkets tillvÀxt och ökad komplexitet visade det sig att universallösningen inte rÀckte till, varken ur ett prestandaperspektiv eller pÄ grund av begrÀnsningar nÀr det gÀllde skalbarhet och implementering av nya funktioner för kunder. SÀrskilt uppstod det svÄrigheter med att lÀgga till funktionalitet utöver en enkel gateway och belastningsbalanserare. Till exempel blev det nödvÀndigt att vid ett fel i förfrÄgningsbehandlingen servern omdirigera förfrÄgan till en annan server och förse den med en annan uppsÀttning HTTP-rubriker.

IstÀllet för en arkitektur dÀr förfrÄgningar delas upp pÄ olika processhanterare anvÀnder Pingora en multitrÄdad modell, som i scenarierna för Cloudflare (hög koncentration av trafik frÄn olika webbplatser med stor statistisk förskjutning) har visat sig fördela resurserna mer effektivt mellan CPU-kÀrnorna. SÀrskilt kopplingen av obalanserade förfrÄgningar till processer i nginx ledde till obalanserad belastning pÄ CPU-kÀrnorna, vilket gjorde att resursintensiva förfrÄgningar och blockerande I/O saktade ned behandlingen av andra förfrÄgningar. Dessutom gjorde kopplingen av anslutningspoolen till processhanterarna det omöjligt att ÄteranvÀnda redan etablerade anslutningar frÄn andra processhanterare, vilket minskar effektiviteten nÀr det finns ett stort antal processhanterare.

NGINX:

Cloudflare har övergÄtt frÄn NGINX till sin egen proxy Pingora, skriven i Rust.

Pingora:

Cloudflare har övergÄtt frÄn NGINX till sin egen proxy Pingora, skriven i Rust.

Implementeringen av Pingora har gjort att antalet operationer för att installera nya anslutningar har minskat med 160 gÄnger och ökat andelen ÄteranvÀnda förfrÄgningar frÄn 87,1 % till 99,92 %. Förutom minskningen av Äterkommande anslutningar och en mer effektiv anvÀndning av CPU-kÀrnor, har en ökning av prestandan hos den nya proxyn frÀmst möjliggjorts genom att bli av med de lÄngsamma behandlarna skrivna i Lua som anvÀndes med nginx.

SprÄket Rust valdes eftersom det möjliggör hög prestanda i kombination med verktyg för att sÀkerstÀlla sÀker minneshantering. Det nÀmns att trots den höga kompetensen hos Cloudflares ingenjörer och kodgranskningen av C-kod, har det inte varit möjligt att undvika fel som leder till minnesproblem (till exempel en sÄrbarhet i HTML-parsern). NÀr det gÀller den nya koden nÀmns fall av nedkörningar i Pingora, som visade sig vara orsakade av ett fel i Linux-kÀrnan och hÄrdvarufel.

Ett ytterligare viktigt uttalande kom frÄn Linus Torvalds pÄ den pÄgÄende konferensen Open-Source Summit Europe angÄende införandet av Rust-stöd i Linux-kÀrnan. I version 6.0 ingick inte patchar för att utveckla enheter i Rust, men enligt Linus kommer de troligen att godkÀnnas i version 6.1, och han tÀnker inte dra ut pÄ integrationen. Som motiv för att lÀgga till Rust-stöd, förutom dess positiva inverkan pÄ sÀkerheten, nÀmner Linus ocksÄ möjligheten att öka intresset frÄn nya deltagare för att arbeta med kÀrnan, vilket Àr viktigt med tanke pÄ att de gamla medarbetarna blir Àldre.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster