Den Redis-Verbrauch auf Thanos-Niveau bringen
(engineering.ab180.co)Ein Engineering-Bericht über Maßnahmen zur Kostensenkung, die dadurch nötig wurden, dass in Redis große Mengen an Daten unkomprimiert im JSON-Format gespeichert wurden und Modelle nicht zwischen Redis-Services geteilt werden konnten.
- Durch die Änderung der Speicherweise derselben Quelldaten konnten der Speicherverbrauch von ElastiCache um 52 % und die Kosten um 66 % gesenkt werden
- Durch die Verwendung von Protobuf statt JSON wurden Datenspezifikationen explizit gemacht und gleichzeitig die Lese-/Schreibweise der Daten zwischen Services vereinheitlicht
- Im Vergleich zeigte Brotli die höchste Kompressionsrate. Durch den Vergleich von Dauer und Kompressionsrate je nach Window-Größe und Kompressionslevel wurde ein optimaler Wert ermittelt und angewendet
- Bei der Verwendung von UUIDs als Redis-Keys konnte durch den Einsatz von ascii85 der Speicherverbrauch zumindest etwas reduziert werden
- Es wurde erkannt, dass technische Schulden im Domänenbereich ein Hindernis für Maßnahmen zur Senkung der Infrastrukturkosten sein können, und diese wurden mit einem expliziten Schema abgebaut
4 Kommentare
Da die Server-Spezifikationen von Tag zu Tag leistungsfähiger werden, habe ich mich eher darauf konzentriert, Produkte schnell zu entwickeln, statt über Optimierung nachzudenken. Umso schöner ist es, nach langer Zeit wieder auf einen so guten Beitrag zu stoßen, der einen dazu bringt, sich mit Optimierung zu beschäftigen!!
Genau, tatsächlich wird JSON vor allem wegen der guten Lesbarkeit und der bequemen flexiblen Strukturierung häufig verwendet, aber im Hinblick auf die Größe ist die Verwendung eines binären Protokolls wie protobuf vorteilhafter, und wenn man es extrem weiterdenkt, sind stark optimierte binäre Protokolle wie die traditionelle PE-Struktur oder das TCP-Protokoll noch besser.
Ich denke, die Formulierung „technische Schulden im Zusammenhang mit der Domäne“ trifft es genau.
Sieht toll aus.
Chef! Erhöhen Sie dieser Person unbedingt kräftig das Gehalt!!