Cloudflare hat soeben mehr als 100 Terabyte RAM in seinem gesamten Netzwerk zurückgewonnen – und die Lösung war eine einzige Algorithmus-Anpassung, kein neues Server-Rack. Die Ingenieure des Unternehmens entdeckten übermäßigen Speicherverbrauch in einem seiner Load-Balancing-Dienste, behoben ihn mit besserer Mathematik und setzten genug Speicherplatz frei, um ihn in Terabyte zu messen.
Die Geschichte stammt aus einem Blogbeitrag von Cloudflare, der erklärt, wie der auf Pingora basierende Backend-Router des Unternehmens weit mehr Speicher festhielt, als er benötigte. Der Übeltäter war eine Bibliothek namens pingora-ketama, die Consistent Hashing handhabt – eine Methode, Anfragen über Server zu verteilen, sodass das Hinzufügen oder Entfernen einer Maschine nicht alles zum Absturz bringt.
Was Consistent Hashing bewirkt
Consistent Hashing funktioniert, indem jeder Server und jede Anfrage in eine Zahl auf einer Linie umgewandelt wird. Jeder Server erhält einen Platz auf dieser Linie, und Anfragen landen bei dem Server zu seiner Linken. Der Kniff ist, dass Hashes Zufallszahlen sind, sodass die Plätze nicht gleich sind – einige Server erhalten deutlich mehr Anfragen als andere.
Die Ingenieure von Cloudflare bemerkten dieses Ungleichgewicht in einem von Ivan eingereichten Ticket. Der Dienst verbrauchte „deutlich mehr Speicher als erwartet“ in Strukturen, die mit pingora-ketama verbunden waren. Die Lösung war keine größere Serverfarm. Sie war ein tieferes Verständnis davon, wie die Zahlen landeten.
Die Mathematik hinter dem Verbrauch
Die zentrale Erkenntnis ist, dass Hash-Funktionen Zufallszahlen erzeugen, und Zufallszahlen verteilen sich nicht gleichmäßig. Der Blogbeitrag führt durch die Statistik: Der Erwartungswert sagt Ihnen, wo die Mitte einer Verteilung liegt, und die Standardabweichung sagt Ihnen, wie weit der Rest gestreut ist. Bei hundert Servern zeigte die Mathematik, dass jeder Server etwa 0,99 % der Gesamtlast bewältigen sollte, wobei die meisten innerhalb von 1 % um diesen Wert liegen.
Aber das ist ein Bruchteil des Ganzen. Der Blogbeitrag beschreibt die Berechnung des Variationskoeffizienten, der misst, wie stark die tatsächlichen Größen von den erwarteten abweichen. Das Prinzip: Weil Hashes im Wesentlichen zufällig sind, werden die Größen der jedem Server zugewiesenen Bereiche natürlich von dem abweichen, was der Erwartungswert vorhersagt.
Behebung mit mehr Hashes
Die Lösung ist nicht eine größere Maschine. Es sind mehr Hashes. Indem jeder Server mehrere Plätze auf dem Zahlenstrahl erhielt, verteilte Cloudflare die Last gleichmäßiger. Der Blog beschreibt es so, dass jedes Werkzeug zu einem Hammer wird – das Problem dreht sich immer darum, wie die Hashes landen.
Das Ergebnis ist ein Pingora-basierter Dienst, der insgesamt weniger Speicher verbraucht. Cloudflare kaufte keine neue Hardware. Es sorgte nur dafür, dass die Zahlen besser landen.
Das Ausmaß des Gewinns
Cloudflare betreibt Tausende Server mit Petabytes an RAM und Millionen CPU-Kernen. Selbst eine kleine Verbesserung summiert sich in dieser Größenordnung schnell. Das Unternehmen sagt, dass kleine Gewinne von 1 % auf einmal es wert sind, gefeiert zu werden, und dieser ging weiter: mehr als 100 TB RAM zurückgewonnen, zusätzlich zu den 100 TB, die das DNS-Team letzten Monat eingespart hat.
Das ist eine echte Zahl. Es ist kein Diagramm oder Graph – es ist tatsächlich Kapazität, die durch ein paar Zeilen Code freigesetzt wurde. Das Performance-Team hilft, eine gerechte Ressourcenteilung zwischen den Teams aufrechtzuerhalten, und diese Korrektur hilft, die Ressourcen fair zu halten.
Wichtige Fakten
- Freigegebener Speicher: Mehr als 100 TB RAM weltweit
- Frühere Einsparungen: 100 TB, die das DNS-Team letzten Monat freigegeben hat
- Beteiligter Algorithmus: pingora-ketama, eine Bibliothek für konsistentes Hashing
- Lösungsansatz: Hinzufügen weiterer Hashes, um die Last auszugleichen
- Gefunden von: Ivan, der ein Ticket einreichte, in dem übermäßige Speichernutzung festgestellt wurde
Zeitplan
| Datum | Ereignis |
|---|---|
| Letzten Monat | DNS-Team gibt 100 TB RAM frei |
| Kürzlich | Ivan reicht Ticket wegen übermäßigen Speicherverbrauchs ein |
| Kürzlich | Fix wird ausgeliefert und gibt über 100 TB RAM frei |
Dies ist die Art von technischem Erfolg, die selten Schlagzeilen macht, aber für Unternehmen, die in der Größenordnung von Cloudflare arbeiten, von großer Bedeutung ist. Der Speicher steht nun anderen Diensten zur Verfügung, und der Fix erinnert daran, dass die beste Optimierung manchmal kein neuer Server ist – sondern ein besserer Weg, die Arbeit zuzuweisen.
Quellenmaterial: „Saving another 100TB of RAM“, cloudflare.com.
Das Notizbuch abonnieren.
Die besten Geschichten des Tages und jedes neue Urteil, in klarem Deutsch, um sieben im Postfach. Eine Mail am Tag, nicht mehr.

