Schneller komprimieren mit Parallel Bzip2

Bzip2 gehört zu den verbreitetsten und besten Kompressoren für Linux. Gerne wird Bzip2 auch zur Kompression von Tar-Archiven benutzt, die dann die Endung .tar.bz2 bekommen. Besonders bei Gigabyte großen Downloads und Backups fällt aber auf, dass Bzip2 recht langsam ist. Das normale Bzip2 nutzt nur einen einzigen Core zum Komprimieren.
Hier setzt Parallel Bzip2 (Pbzip2) an. Standardmäßig nutzt es alle Cores der CPU. Pbzip2 unterstützt die gleichen Optionen wie Bzip2 und noch einige mehr. Bzip2 kann damit sehr einfach durch Pbzip2 ersetzt werden.
Der folgende Test zeigt etwa eine Verdoppelung der Geschwindigkeit für eine Quad-Core i5 CPU. Es wird ein 109 MB großes Tar-Archiv komprimiert. Die mit Pbzip2 komprimierte Datei ist im Test geringfügig kleiner als die Bzip2 komprimierte Datei.

$ ls -l etc.tar
-rw-r--r-- 1 bv bv 113571840 25. Jan 14:08 etc.tar

$ time bzip2 etc.tar
real 0m14.832s
user 0m14.732s
sys 0m0.081s

$ ls -l etc.tar.bz2
-rw-r--r-- 1 bv bv 15034680 25. Jan 14:08 etc.tar.bz2

$ time pbzip2 etc.tar
real 0m6.376s
user 0m16.784s
sys 0m0.408s

$ ls -l etc.tar.bz2
-rw-r--r-- 1 bv bv 15022080 25. Jan 14:10 etc.tar.bz2

Pbzip2 gibt es hier: compression.ca/pbzip2/ und in den Paketquellen vieler Distributionen.

Schreibe einen Kommentar