Von gzip-Kompression auf zstd für Backups umstellen

zstd ist mittlerweile ziemlich verbreitet und komprimiert besser und ist schneller als gz. Vielleicht lohnt es sich, dies für Backups zu ändern.

Wenn man alle Discourse-Instanzen auf der ganzen Welt berücksichtigt, könnte dies eine erhebliche Einsparung bei Speicherplatz und Übertragung bedeuten.

Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.

4 „Gefällt mir“

Ich halte das für eine gute Idee. Ich setze den #pr-welcome-Tag dafür.

2 „Gefällt mir“

Ich wäre neugierig, das durchschnittliche Gewichtsverhältnis zwischen komprimierbaren und bereits komprimierten Daten in einem Discourse-Backup[1] zu erfahren und wie viele Daten (in %) mit zstd eingespart würden.

Dies ist keine identische Funktionsanfrage, aber es geht auch um Backup-Kompression, daher poste ich dies hier:

Ich wäre nicht überrascht, wenn der Prozentsatz bei all meinen Discourse-Foren ungefähr gleich wäre.


  1. Natürlich sind einige Foren sehr auf Bild-Uploads angewiesen, und einige erlauben nicht einmal Datei-Uploads. ↩︎

Gelegentlich führt der Backup-Prozess aufgrund der zusätzlichen Last zu Verfügbarkeitsproblemen. Daher habe ich heute einen kurzen Test mit zstd durchgeführt.

Hier sind meine Ergebnisse beim Komprimieren derselben 73 GiB großen dump.sql-Datei mit gzip (Stufe 4, wie im Discourse-Backup) und zstd (Standardstufe 3 von 19):

Komprimierte Größe: 15,8 % kleiner (.zst war 84 % der Größe von .gz)
Komprimierungszeit (-T1): 71 % schneller (29 % der gzip-Zeit)
Komprimierungszeit (-T0): 89 % schneller (11 % der gzip-Zeit)

Die Ergebnisse können variieren; ich habe den Test nicht mehrfach wiederholt, mein eigener Rechner (6 Kerne) hatte zudem andere Aufgaben zu erledigen usw. usw. – es ging mir nicht um absolute Präzision. Dennoch sind die Vorteile meiner Meinung nach klar.

Ich bin mir nicht sicher, ob -T0 für jeden die richtige Wahl wäre, da es sinnvoll erscheint, etwas Spielraum für Discourse selbst zu lassen. Daher habe ich das Beispiel mit -T1 für einen direkteren Vergleich gewählt.

Das fühlt sich nach einem Gewinn für beide Seiten an und würde sich wahrscheinlich auch erheblich auf die Hosting-Infrastruktur von Discourse auswirken. Das gesagt, ich habe nicht das nötige handwerkliche Geschick für einen PR, also teile ich einfach nur, was ich herausgefunden habe.

2 „Gefällt mir“

Ich kann bestätigen, dass tar innerhalb von Docker die --zstd-Komprimierung unterstützt.

Edit: Oops, nein. tar unterstützt es zwar, aber das ‘zstd’-Werkzeug fehlt. Es ist über apt-get install verfügbar.

2 „Gefällt mir“