Cloudflare rilascia circa 100 TB di memoria attraverso cinque ottimizzazioni del codice Rust senza aggiungere un singolo server

📅 2026-08-30

Riassunto:

Cloudflare ha recentemente ridotto in modo significativo la memoria cache utilizzata dal suo risolutore DNS pubblico 1.1.1.1, liberando circa 100 TB di memoria sull'intera rete. Questa ottimizzazione non implica la sostituzione dell'hardware del server o la rimozione dei moduli di memoria, ma viene ottenuta migliorando il metodo di archiviazione del software per la memorizzazione nella cache dei dati DNS.

Questo lavoro ruota principalmente attorno al Big Pineapple. Big Pineapple è la piattaforma di caching di Cloudflare che supporta il risolutore 1.1.1.1, il firewall DNS e molti altri servizi DNS. Sebastiaan Neuteboom, ingegnere di sistema di Cloudflare, ha introdotto in un blog tecnico cinque modifiche al codice base di Rust che hanno ridotto lo spazio occupato da un singolo tipico record di cache DNS da 953 byte a 420 byte.

Anche la velocità di funzionamento ottimizzata del sistema è stata migliorata. Cloudflare ha affermato che il throughput di inserimento della cache è aumentato da 625.000 elementi al secondo a 893.000 elementi al secondo e la latenza delle query è scesa da 828 nanosecondi a 670 nanosecondi. Nel corso dell'implementazione da metà maggio a inizio luglio, l'utilizzo della memoria del 99° percentile per istanza è sceso da 9,3 GB a 5,3 GB.

Cloudflare afferma che Big Pineapple memorizza costantemente nella cache più di 250 miliardi di record DNS. Su una scala così ampia, anche una piccola quantità di memoria sprecata per record equivale a una quantità significativa. L'azienda stima che per ogni byte non necessario occupato in una voce della cache, l'intero cluster di server consuma più di 250 GB di memoria aggiuntiva.

Uno dei cambiamenti importanti riguarda i tipi Vec e String in Rust. Questi contenitori sono progettati per espandersi dinamicamente, quindi oltre ai dati effettivi vengono salvate informazioni aggiuntive come la capacità. Tuttavia, non è necessario espandere il record DNS dopo essere stato inserito nella cache. Cloudflare ha quindi sostituito queste strutture con sezioni boxed di dimensione fissa, rimuovendo i metadati che non erano più utili. Secondo l'azienda, questa modifica da sola ha consentito di risparmiare più di 15 TB di memoria.

Gli ingegneri hanno anche riprogettato il modo in cui le risposte DNS sono organizzate in memoria. In precedenza, Big Pineapple salvava tre serie di elenchi di record per ciascuna risposta; la nuova struttura inserisce tutti i record nello stesso buffer e quindi utilizza un offset di due byte per identificare la posizione di ciascun record.

La cache ora non conserva più i nomi dei proprietari quando sono semplicemente duplicati del nome di dominio richiesto, ma viene invece ricostruita quando viene restituita la risposta. Inoltre, il sistema salva invece i dati dei record utilizzando byte in formato di linea DNS non elaborati con un prefisso di lunghezza, risolvendo il problema dello spazio sprecato nei progetti precedenti. In precedenza, un record IPv4 A, che occupava solo 4 byte, ne occupava 144, così come il relativamente raro record NAPTR, il tipo di record DNS più grande memorizzato nella cache di Cloudflare. Il passaggio a un formato di dati grezzi a lunghezza variabile elimina la necessità che i record più brevi riservino lo stesso spazio dei record più lunghi.

I 100 TB di memoria recuperati da Cloudflare sull'intero cluster di server equivalgono all'incirca alla capacità di memoria di 130 server di 13a generazione. Ciascuno di questi server è dotato di memoria DDR5-6400 da 768 GB. Cloudflare ha preso in considerazione una configurazione di memoria da 1.152 GB per questa generazione di server, ma alla fine ha rinunciato dopo aver valutato il costo di una memoria con capacità maggiore.

Con questo spazio di memoria, Cloudflare prevede di espandere la dimensione della cache DNS. Si prevede che il mantenimento di più record a livello locale migliorerà i tassi di riscontro della cache e ridurrà il traffico di richieste verso server DNS autorevoli.

Non è la prima volta che Cloudflare esegue un'ottimizzazione dell'efficienza della memoria su larga scala. L'anno scorso, l'azienda ha anche riscritto il livello FL2 responsabile dell'elaborazione delle richieste nel codice Rust. Con l'aumento dei prezzi delle memorie per server, liberare il potenziale dell'infrastruttura esistente attraverso l'ottimizzazione del software potrebbe rivelarsi più conveniente rispetto alla semplice aggiunta dell'hardware.

Tag correlati

Articoli correlati

Commenti

0/500
Captcha (click to refresh)
Nessun commento