Das teure “Einzelbyte”
In der Technologiewelt des Jahres 2026 kaufen alle Unternehmen wie verrückt Server für Rechenleistung und Speicher. Doch in den Rechenzentren des Web-Infrastruktur-Giganten Cloudflare stoppten die Ingenieure die Expansion und betrachteten stattdessen den Low-Level-Code, um nach verschwendeten Bytes zu suchen.
Das DNS-System von Cloudflare, “Big Pineapple”, verarbeitet täglich eine gigantische Menge globaler Netzwerkanfragen. Seine Cache-Einträge überschreiten 250 Milliarden. Angesichts dieser astronomischen Zahl bedeutet die Verschwendung von nur 1 Byte, dass der gesamte Cluster zusätzlich 250 GB Speicher verbraucht.
Abbildung: Verteilung der Cloudflare-Dienstknoten. Quelle: Cloudflare Blog
Im Vergleich zu riesigen KI-Modellen, die Terabytes an VRAM erfordern, mögen ein paar hundert Gigabyte trivial klingen. Für Low-Level-Systeme, die extrem schnelle Antworten erfordern, bringt ein aufgeblähter Speicher jedoch nicht nur teure Hardware-Rechnungen mit sich, sondern führt auch zu inakzeptablen Latenzen.
Quetschen auf Pixelebene
Angesichts der Ressourcenverschwendung griffen sie zur härtesten Lösung: extreme Optimierung des Speicherlayouts auf Ebene der Programmiersprache Rust. Das ist so, als würde man in einem vollgestopften Lagerhaus die Regalstruktur neu planen, um mit aller Kraft eine große freie Fläche zu schaffen.
Die übliche Praxis besteht darin, dynamische Arrays (Vec) oder Strings (String) zum Speichern von Daten zu verwenden. Diese Methode bringt von Haus aus ein “Kapazitäts”-Feld (capacity) mit sich, das Platz für zukünftige Erweiterungen reserviert. Die Ingenieure von Cloudflare ersetzten sie alle durch Arrays fester Länge (Box<[T]> und Box<str>) und durchtrennten so direkt die Verschwendung von reserviertem Platz.
Abbildung: Vergleich der Speicherstruktur vor und nach dem Entfernen des Kapazitätsfelds dynamischer Arrays. Quelle: Cloudflare Blog
Sie refaktorierten auch die Datenstrukturen, führten mehrere ursprünglich verstreute Listen zu einer einzigen Liste zusammen und verwendeten Offsets für die genaue Positionierung. Wenn der abgefragte Domainname mit dem des Datensatzeigentümers übereinstimmt, löscht das System das Eigentümerfeld einfach direkt. Durch diese Kombination von Maßnahmen wurde der Speicherbedarf pro Cache-Eintrag um mehr als 50 % reduziert.
Eine Win-Win-Situation für Leistung und Kosten
Dieser extreme Geiz brachte erstaunliche Erträge. Fünf aufeinanderfolgende Optimierungen gaben kumuliert etwa 100 TB Speicher frei. Das entspricht dem gesamten Speicher von 130 Gen-13-Servern.
Dies sparte nicht nur eine riesige Menge an Serverbeschaffungskosten, sondern steigerte auch die Gesamtleistung des Systems erheblich. Kompaktere Datenstrukturen führten zu höheren CPU-Cache-Trefferraten, was letztendlich den Einfügedurchsatz des Systems um 43 % erhöhte und die Abfragelatenz um 19 % senkte.
Systemoptimierung scheint in dieser Ära ein Nischenhandwerk geworden zu sein. Die Fakten beweisen jedoch, dass in diesen oft übersehenen Low-Level-Details immer noch immense Energie verborgen ist.
Der vergessene Hebel
100 TB Speicher wurden von Ingenieuren Zeile für Zeile aus dem Code herausgequetscht. In dieser Ära des verrückten Hardware-Stapelns hat Cloudflare allen eine alte Lektion erteilt.
Jeder ist es gewohnt, Engpässe bei der Rechenleistung mit Geld zu lösen, und die grundlegendste Codequalität wird leicht vergessen. Wenn wir über Modelle mit Hunderten Milliarden Parametern und Cluster mit Zehntausenden GPUs sprechen, sollten wir vielleicht auf die ungültigen Bytes hinabschauen, die im Speicher schlummern.
Die intuitiven Daten aus Cloudflares 100-TB-Speicherfreigabe beweisen eine Tatsache. In einer Zeit, in der alle Geld für KI verbrennen, bleibt die klassische Systemoptimierung der größte und am meisten übersehene Kostenhebel. Anstatt blindlings Hardware anzuhäufen, ist es besser, die Infrastruktur unter unseren Füßen neu zu bewerten. Der Autor glaubt, dass dies die stärkste Antwort ist, die Systemingenieure in dieser Zeit geben können.
Referenzen:
- Cloudflare Blog