Zum Hauptinhalt springen

Was ist zstd?

zstd ist ein moderner Kompressionsalgorithmus der bei Facebook entworfen wurde und den Nine für die Kompression von Datenbankdumps und Logfiles nutzt.

Gegenüber gzip, welches auf dem Algorithmus deflate basiert, bietet zstd in Abhängigkeit der zu komprimierenden Daten eine deutlich höhere Kompression und einen merklichen Geschwindigkeitsvorteil. In Einzelfällen sinkt die Kompressionsrate geringfügig unter die von gzip, der Geschwindigkeitsvorteil bleibt jedoch erhalten.

Neben dem Geschwindigkeitsvorteil nutzt zstd signifikant weniger CPU Ressourcen. gzip lastet üblicherweise einen CPU Core zu 100% aus, während zstd im Bereich von 20 bis 30% CPU Core Auslastung agiert und damit einen wesentlich geringeren Fussabdruck hinterlässt.

Ein effizienter und sparsamer Algorithmus ist besonders auf virtualisierten Infrastrukturen sehr hilfreich. Gerade Nachts, wenn viele Wartungs- und Sicherungsarbeiten ausgeführt werden, wird dadurch die Infrastruktur deutlich weniger stark durch die konkurrierenden Prozesse belastet und jeder einzelne Prozess kann früher abgeschlossen werden.

Dies merken auch Sie als Kunde, da mehr Ressourcen für die Verarbeitung von Web-Aufrufen oder Cronjobs zur Verfügung stehen. Insbesondere last intensivere Cronjobs werden ebenfalls gerne zur nächtlichen Stunde ausgeführt.

Natürlich können auch Sie als Kunde vom fortschrittlicheren Algorithmus profitieren. Wir raten dazu Sicherungen und eigene Dumps mit zstd zu komprimieren. Die nötigen Tools stehen Ihnen auf unseren Systemen bereits zur Verfügung:

Komprimierung: zstd myfile

  • Option: --rm -> entfernt die Quelldatei nach der Komprimierung. Ist nicht standardmässig aktiv und sollte unbedingt angegeben werden, andernfalls verbleibt die Quelldatei im Dateisystem

Dekomprimierung: unzstd myfile.zst

  • Option: --rm -> entfernt das Quellarchiv nach der Dekomprimierung. Ist nicht standardmässig aktiv und kann angegeben werden wenn das komprimierte Archiv nicht mehr benötigt wird

Kompressionsstärke:

  • Option: -1 bis -19 -> gibt an wie stark die Kompression sein soll. Standard "-3". -1 bietet die schwächste Kompression und höchste Geschwindigkeit, -19 hingegen die stärkste Kompression und niedrigste Geschwindigkeit. Kompressionslevel im Bereich -3 bis -9 bieten üblicherweise den besten Kompromiss.

zstd unterstützt den Aufbau eines "Wörterbuches", um den Kompressionsfaktor weiter zu verbessern. Dieses Wörterbuch muss allerdings sowohl für den Komprimierungs- als auch für den Dekomprimierungsvorgang angegeben werden, was die Handhabung verkompliziert. Steht das Wörterbuch nicht (oder nicht mehr) zur Verfügung können vorhandene Archive nicht mehr entpackt werden. Wir raten daher von der Nutzung und dem Anlegen eines eigenen Wörterbuches ab.

Um mit zstd erstellte Archive auf Windows-Clients entpacken zu können, kann eine angepasste Version des Tools 7zip verwendet werden, welches unter folgender Adresse bezogen werden kann: https://mcmilk.de/projects/7-Zip-zstd/

Weitere Informationen zu zstd sind unter folgender URL zu finden: https://facebook.github.io/zstd/