Cloudflare bespaart 100 TB RAM achter 1.1.1.1-DNS zonder extra servers

Vijf Rust-codeaanpassingen verkleinen standaard DNS-cache-items van 953 naar 420 bytes

De optimalisatie was gericht op Big Pineapple, Cloudflare’s DNS-cacheplatform achter de populaire 1.1.1.1-resolver, DNS Firewall en verschillende andere DNS-diensten. In een technische blogpost lichtte systems engineer Sebastiaan Neuteboom vijf wijzigingen in de Rust-codebase toe, waarmee een standaard cache-item werd verkleind van 953 bytes naar 420 bytes.

De aanpassingen maakten de cache bovendien sneller. Cloudflare meldde dat de invoersnelheid steeg van 625.000 naar 893.000 items per seconde, terwijl de opzoeklatentie daalde van 828 nanoseconden naar 670 nanoseconden. Tijdens de uitrol, van half mei tot begin juli, daalde het p99-geheugenverbruik per instantie van 9,3 GB naar 5,3 GB.

Volgens Cloudflare bevat Big Pineapple op elk moment meer dan 250 miljard DNS-items. Op zo’n schaal tikt zelfs een kleine hoeveelheid verspild geheugen snel aan. Het bedrijf schat dat één onnodige byte in elk cache-item meer dan 250 GB kost binnen de totale infrastructuur.

Een van de grootste wijzigingen betrof de Rust-typen Vec en String. Deze containers zijn ontworpen om te kunnen groeien en slaan daarom naast de gegevens zelf ook capaciteit op. DNS-records hoeven echter niet uit te breiden nadat ze in de cache zijn geplaatst. Cloudflare verving deze structuren door vaste boxed slices, waardoor overbodige metadata verdween. Volgens het bedrijf leverde die wijziging alleen al meer dan 15 TB aan RAM-besparing op.

Ook herzag het team hoe DNS-antwoorden in het geheugen worden opgebouwd. Big Pineapple bewaarde voorheen drie aparte recordlijsten per antwoord. In het nieuwe ontwerp staan de records in één buffer en worden ze aangeduid met offsets van twee bytes.

De cache bewaart nu ook geen owner names meer wanneer die simpelweg identiek zijn aan het opgevraagde domein. Cloudflare bouwt die namen opnieuw op wanneer het het antwoord terugstuurt. Daarnaast worden recordgegevens nu opgeslagen als ruwe bytes in wire format, met een lengteprefix. Daarmee wordt een eerdere scheve verdeling opgelost. Een IPv4 A-record van vier bytes nam eerder evenveel ruimte in beslag als het grootste DNS-recordtype dat Cloudflare cachet: het relatief zeldzame NAPTR-record van 144 bytes. Het opslaan van ruwe gegevens in een variabel formaat vermindert die verspilling.

De 100 TB RAM die Cloudflare binnen het netwerk heeft teruggewonnen, komt ongeveer overeen met het geheugen in 130 Gen 13-servers. Elke server heeft 768 GB DDR5-6400-geheugen. Het bedrijf had voor die generatie ook een configuratie van 1.152 GB overwogen, maar zag daarvan af na een kostenafweging rond geheugen met hogere capaciteit.

Met deze RAM-besparing wil Cloudflare meer geheugen toewijzen aan grotere DNS-caches. Door meer records lokaal vast te houden, moet de cache-hitratio verbeteren en neemt het verkeer naar autoritatieve DNS-servers af.

Dit project volgt op een andere grote efficiëntieslag die vorig jaar werd afgerond, toen Cloudflare de FL2-laag voor het afhandelen van verzoeken herschreef in Rust. Dat is waarschijnlijk een verstandige manier om slimmer met middelen om te gaan en meer uit de bestaande infrastructuur te halen, zeker nu servergeheugen steeds duurder wordt.

Kort samengevat: Cloudflare heeft het geheugengebruik van de DNS-cache achter de 1.1.1.1-resolver met meer dan de helft teruggebracht. Daardoor komt er ongeveer 100 TB aan RAM vrij binnen het netwerk. Het bedrijf hoefde geen servers te vervangen en ook geen geheugenmodules te verwijderen. In plaats daarvan hebben engineers de manier waarop DNS-gegevens in software worden opgeslagen, aangepast.

  • Eater

    vraag en ik antwoord

    Related Posts

    Windows 11 geeft onterecht meldingen: ‘Virusbeveiliging is uitgeschakeld’

    Zo controleer je of Defender echt actief is. Krijg je in Windows 11 meldingen dat je virusbeveiliging moet inschakelen en dat je pc onbeschermd is? Geen zorgen: dit is een…

    Vijf kritieke kwetsbaarheden in WordPress-plugins en -thema’s kunnen leiden tot site-overname of RCE

    Er zijn meerdere kritieke beveiligingslekken openbaar gemaakt in WordPress-plugins en -thema’s, waaronder WPMU DEV Dashboard, Avada, TranslatePress, Pods en GiveWP. Deze kwetsbaarheden kunnen leiden tot het omzeilen van authenticatie, het…

    Geef een reactie