Ein einziges eingespartes Byte pro Eintrag reicht bei Cloudflares DNS-Cache aus, um mehr als 250 Gigabyte Speicherbedarf im gesamten Servernetzwerk zu reduzieren. Das schreibt Cloudflare selbst in der Ankündigung zu seiner jüngsten Optimierung. Bei mehr als 250 Milliarden gespeicherten DNS-Einträgen gleichzeitig braucht es keine große Änderung für eine große Wirkungen. Am Ende hat das Unternehmen den Speicherbedarf pro Eintrag von 953 auf 420 Byte gesenkt und dadurch rund 100 Terabyte Arbeitsspeicher über die gesamte Serverflotte freigegeben.
Wie aus Kilobyte Terabyte werden
Rechne ich die eingesparten 533 Byte pro Eintrag einfach mit der genannten Zahl von über 250 Milliarden Einträgen hoch, komme ich auf etwa 133 Terabyte. Cloudflare selbst spricht von rund 100 Terabyte – die Differenz erklärt sich vermutlich dadurch, dass die tatsächliche Anzahl der Cache-Einträge zum Zeitpunkt der Umstellung nicht exakt der aufgerundeten Zahl aus der Ankündigung entsprach. Beides ist eine grobe Überschlagsrechnung, keine exakte Messung, aber die Größenordnung stimmt: Ein paar Byte, die auf jeder einzelnen Karteikarte gespart werden, ergeben bei ausreichend vielen Karteikarten einen ganzen Serverraum.
Genau diesen Skalierungsfaktor sehe ich in meiner Beratung ständig unterschätzt, nur meist in die andere Richtung gedacht. Ich habe das früher selbst am Google-Logo durchgerechnet, das bis heute nicht so kompakt ausgeliefert wird, wie es technisch möglich wäre – bei einem der meistabgerufenen Bilder im gesamten Web reicht schon ein kleiner, eigentlich vernachlässigbarer Overhead pro Abruf, um sich über die schiere Zahl der Aufrufe zu einer relevanten Größe aufzusummieren. Nichts anderes passiert bei jedem unoptimierten Bild, jeder vergessenen Brotli- oder Gzip-Kompression auf einer x-beliebigen Website: Der einzelne Fehler wirkt klein. Multipliziert mit der Zahl der Seitenaufrufe wird er messbar.
Der Rebound-Effekt, den Cloudflare selbst einräumt
Auf den ersten Blick ist die Meldung eine klassische Effizienzgeschichte: weniger Speicherbedarf, weniger Hardware, weniger Energieverbrauch. Schaut man genauer hin, schreibt Cloudflare selbst, wofür der freigewordene Speicher tatsächlich verwendet wird: um die Cache-Kapazität zu erhöhen, ohne den Speicherverbrauch insgesamt zu steigern. Das klingt zunächst nach der optimalen Lösung, ist aber vor allem eines: ein Lehrbuchbeispiel für den Rebound-Effekt, wie ihn das Jevons-Paradoxon aus dem 19. Jahrhundert beschreibt. Effizienzgewinne werden nicht in weniger Ressourcenverbrauch übersetzt, sondern in mehr Leistung bei gleichem Verbrauch.
Warum ich daraus trotzdem keinen Vorwurf mache
Die naheliegende Kritik wäre: Cloudflare hätte die 100 Terabyte einfach abschalten und 130 Server aus dem Netz nehmen können, wie das Unternehmen selbst vorrechnet. Wirtschaftlich betrachtet ist das aber die falsche Vergleichsgröße. Die Nachfrage nach DNS-Auflösungen und Cache-Kapazität wächst ohnehin weiter, mit oder ohne diese Optimierung. Die eigentliche Alternative zur jetzigen Lösung ist also nicht „Server abschalten“, sondern „künftiges Wachstum durch zusätzliche Hardware statt durch die vorhandene, jetzt effizienter genutzte Hardware bedienen“. In diesem Vergleich spart die Optimierung sehr wohl Ressourcen ein, nur eben gegenüber einem Wachstumspfad, der sonst zusätzliche Server gebraucht hätte, nicht gegenüber dem heutigen Zustand.
Das ändert nichts daran, dass die 100 Terabyte in der Außendarstellung wie eine reine Einsparung klingen, obwohl sie in der Bilanz vor allem eine Wachstumsreserve sind. Für Website-Betreiber, die im Kleinen vor derselben Frage stehen, lohnt sich deshalb ein zweiter Blick auf jede eigene Optimierung: Wird eingesparte Kapazität tatsächlich abgeschaltet, oder wandert sie nur in mehr Funktionen, mehr Tracking, mehr Multimedia auf derselben Seite?
Effizienz spart nie automatisch Ressourcen ein – sie spart nur die Ausrede, mehr Ressourcen zu brauchen.
Quellen: Cloudflare gibt durch Optimierung 100 Terabyte RAM frei (Golem) · Cloudflare-Blogbeitrag: DNS cache memory optimization
