Server-Hardware

Cloudflare gibt 100 Terabyte RAM durch DNS-Cache-Optimierung frei

Cloudflare hat durch eine Neugestaltung des Speicherlayouts seiner DNS-Cache-Eintraege rund 100 Terabyte Arbeitsspeicher in seiner globalen Serverflotte frei gemacht, konkret beim DNS-Resolver 1.1.1.1.

Ein Byte kostet 250 Gigabyte

Der Hebel ist die schiere Masse: Cloudflare haelt jederzeit mehr als 250 Milliarden DNS-Eintraege im Cache. Schon ein einziges verschwendetes Byte pro Eintrag kostet damit ueber 250 Gigabyte Flottenspeicher. Fuenf Optimierungen auf Rust-Ebene senkten den Speicherbedarf pro Eintrag um 56 Prozent.

Fixe Slices statt wachsender Container

  • Ersatz von Rusts wachsenden Vec- und String-Containern durch feste, geboxte Slices spart allein ueber 15 TB.
  • Die drei Record-Listen jeder DNS-Antwort werden in einen Puffer zusammengefasst, adressiert ueber 2-Byte-Offsets.
  • Record-Daten werden als laengenpraefixierte Roh-Bytes im Wire-Format gespeichert.

Schneller statt langsamer

Die Einsparung ging nicht zulasten des Tempos. Durch weniger Allokationen und bessere Speicherlokalitaet stieg der Insert-Durchsatz um 43 Prozent, waehrend die Lookup-Latenz um 19 Prozent sank.


Quellen: Golem.de.

Mastodon
Nach oben scrollen