
Ich komprimiere ein Backup einer MongoDB (~500 GB) in ein .tar.gz-Archiv, was mehrere Stunden dauert. Ich versuche, diese Datenbank zu Testzwecken auf verschiedenen Maschinen wiederherzustellen, und hätte gerne eine Schätzung, wie lange das pro Maschine dauern wird.
Meine Frage lautet: Gibt es eine Möglichkeit, anhand der Komprimierungsdauer die zum Dekomprimieren des Archivs benötigte Zeit abzuschätzen?
Danke
Antwort1
Mir ist kein Standardverhältnis zwischen Komprimierung und Dekomprimierung bekannt, da dies wirklich von Ihren Daten- und Serverressourcen abhängt. Vorausgesetzt, alle anderen Ressourcen sind gleich, ist die Dekomprimierung im Allgemeinen schneller, da weniger Rechenarbeit erforderlich ist. Ihre Schätzung im schlimmsten Fall könnte dieselbe sein wie die anfängliche Komprimierungszeit.
Für einen einfachen Sieg empfehle ich jedochpigz
, eine parallele Implementierung, gzip
die mehrere Prozessoren und Kerne nutzt. Sofern Sie nicht nur einen einzigen Kern zur Verfügung haben, pigz
sollte die Zeit für Komprimierung und Dekomprimierung erheblich reduziert werden.
Beispielverwendung mit tar
:
tar -c --use-compress-program=pigz -f data.tgz /path/to/data
Weitere Beispiele finden Sie unterStackOverflow: Nutzung von Multi-Core für Tar+Gzip/Bzip-Komprimierung/Dekomprimierung.
Antwort2
Es gibt kein festes Verhältnis auf derselben Maschine, und die Verwendung mehrerer Maschinen (unterschiedlicher Typen) kann definitiv Auswirkungen haben. Komprimierung und Dekomprimierung beziehen aktiv Datenspeicher (z. B. eine „Festplatte“ oder „SSD“), Prozessor und andere Komponenten wie Speicher ein.
Verallgemeinernd lässt sich sagen, dass das Dekomprimieren ziemlich schnell geht und möglicherweise sogar schneller ist als das Kopieren der unkomprimierten Datenmenge. Das Komprimieren kann ähnlich schnell sein, und für etwas wie RLE-Komprimierung ist es vielleicht sogar so. Bei Zip und Gzip sind gängige Implementierungen langsamer als das Dekomprimieren, und Sie können oft noch 5–15 % mehr Komprimierungseffektivität herausholen, wenn Sie aggressivere Komprimierungsoptionen wählen, die möglicherweise 2–4 Mal so lange dauern.
Der Unterschied liegt hauptsächlich darin, dass die Komprimierung einige Tests erfordert (manchmal auch als „Raten“ bezeichnet) und einige Tests ergebnislos sind. Im Gegensatz dazu folgt die Dekomprimierung im Allgemeinen nur einem vordefinierten Prozess und geht daher relativ schneller.