// COMPUTERBASE — HARDWARE & GADGET
Ein Byte kostet 250 GB: Cloudflare spart dank Optimierung 100 TB RAM
Bei mehr als 250 Milliarden Einträgen wird selbst ein einzelnes Byte zum Kostenfaktor: Hochgerechnet auf den gesamten DNS-Cache von Cloudflare belegt es über 250 GB RAM. Durch fünf Optimierungen sank der Speicherbedarf pro Eintrag von 953 auf 420 Byte.
Hinter Cloudflares öffentlichem DNS-Dienst 1.1.1.1 arbeitet eine in Rust entwickelte Plattform namens „Big Pineapple“. Sie bildet zugleich die Grundlage für weitere Angebote wie Gateway-DNS, DNS-Firewall und AS112. Insgesamt hält die Plattform zu jedem Zeitpunkt mehr als 250 Milliarden DNS-Einträge im Cache, damit wiederkehrende Anfragen nicht erneut an die jeweils zuständigen Server weitergereicht werden müssen.
In dieser Größenordnung summiert sich bereits geringer Overhead. Ein zusätzliches Byte pro Eintrag beansprucht über die gesamte Cloudflare-Flotte hinweg mehr als 250 GB Arbeitsspeicher. Acht unnötige Byte würden dementsprechend bereits rund 2 TB belegen.
Cloudflare nahm deshalb die Datenstrukturen des Caches unter die Lupe. Unter anderem ersetzten die Entwickler veränderbare Listen und Zeichenketten durch unveränderliche Strukturen, sobald ein Eintrag im Cache abgelegt ist. Allein diese Maßnahme spart 64 Byte pro Eintrag und bei 250 Milliarden Einträgen insgesamt mehr als 15 TB.
Darüber hinaus fasste Cloudflare zuvor getrennte Listen zusammen, entfernte mehrfach gespeicherte Domainnamen und lagerte große, aber selten verwendete Datentypen aus. Im letzten Schritt werden die eigentlichen DNS-Datensätze nicht mehr als vollständig aufbereitete Rust-Objekte, sondern kompakt im Übertragungsformat gespeichert. Zusammen reduzieren die fünf Änderungen den Nettospeicherbedarf eines Cache-Eintrags um 56 Prozent von 953 auf 420 Byte. Die dafür notwendigen Speicherzuweisungen sanken von 1,1 KB auf 461 Byte.
Die kompaktere Speicherung ist nicht mit einem Leistungsverlust verbunden. Weil weniger Speicherzuweisungen notwendig sind und zusammengehörige Daten näher beieinanderliegen, kann der Prozessor effizienter auf sie zugreifen. In Cloudflares Benchmarks stieg der Durchsatz beim Einfügen neuer Cache-Einträge um 43 Prozent. Die Latenz beim Abrufen eines Eintrags sank gleichzeitig um 19 Prozent.
In der Praxis reduzierte Cloudflare den Arbeitsspeicherbedarf der gesamten Flotte damit um rund 100 TB. Ausgebaut werden die Systeme deswegen jedoch nicht: Cloudflare will den freigewordenen Speicher für einen größeren DNS-Cache verwenden. Eine höhere Trefferquote soll die Zahl der Anfragen an übergeordnete DNS-Server verringern.