Schwein , kurz für p arallel ich Implementierung von gz ip ist ein kostenloses Open-Source-Multithread-Komprimierungsprogramm zum Komprimieren und Dekomprimieren von Dateien unter Linux. Pigz, ausgesprochen als pig-zee , verwendet die zlib und pthread Bibliotheken und nutzt beim Komprimieren von Daten die Vorteile mehrerer Prozessoren und mehrerer Kerne voll aus. Da pigz mithilfe von Threads komprimiert, um mehrere Prozessoren und Kerne zu nutzen, kann es größere Dateien viel schneller archivieren als mit gzip. Einfach ausgedrückt, Pigz macht das, was gzip macht, aber es verteilt die Arbeit beim Komprimieren auf mehrere Prozessoren und Kerne und beschleunigt den Komprimierungs-/Dekomprimierungsprozess erheblich. Lassen Sie uns in dieser Anleitung lernen, Dateien mit Pigz unter Linux parallel zu komprimieren und zu dekomprimieren.
Installieren Sie Pigz unter Linux
Pigz ist in den offiziellen Repositories beliebter Linux-Betriebssysteme verfügbar.
Auf Arch Linux und seine Varianten wie Manjaro Linux, aktivieren Sie [Community] Repository und installieren Sie Pigz mit dem Befehl:
$ sudo pacman -S pigz
Auf CentOS 8/7/6 :
$ sudo yum install pigz
Auf Debian :
$ sudo apt-get install pigz
Auf Fedora :
$ sudo dnf install pigz
Auf Ubuntu , Linux Mint :
$ sudo add-apt-repository universe
$ sudo apt install pigz
Auf openSUSE :
$ sudo zypper install pigz
Kompilieren und installieren Sie bei anderen Linux-Distributionen wie unten gezeigt aus dem Quellcode.
Stellen Sie zunächst sicher, dass Sie die folgenden Voraussetzungen installiert haben:
- machen
- gcc
- zlib-devel
Beispielsweise können Sie auf Debian-basierten Systemen die obigen Pakete mit dem Befehl installieren:
$ sudo apt install make gcc zlib-devel
Auf RPM-basierten Systemen:
$ sudo yum install make gcc zlib-devel
Laden Sie dann die neueste Pigz-Version von der offiziellen Website herunter (Link ist am Ende angegeben):
$ wget https://zlib.net/pigz/pigz-2.4.tar.gz
Extrahieren Sie die Pigz-Tar-Datei:
$ tar -xzvf pigz-2.4.tar.gz
Dieser Befehl extrahiert den Inhalt in einen Ordner namens pigz-2.4 im aktuellen Arbeitsverzeichnis.
CD in das "pigz-2.4"-Verzeichnis:
$ cd pigz-2.4
Kompilieren und installieren Sie es mit dem folgenden Befehl:
$ make
Kopieren Sie die Pigz-Binärdatei in Ihren $PATH, zum Beispiel /usr/local/bin :
$ sudo cp pigz /usr/local/bin/
Melden Sie sich ab und wieder an, um pigz zu verwenden.
Dateien parallel mit Pigz komprimieren und dekomprimieren
Pigz teilt die gegebene Eingabe in 128 KB Chunks und komprimiert jeden von ihnen parallel. Das generierte komprimierte Datenformat liegt im gzip-, zlib- oder Single-Entry-Zip-Format vor, das die Deflate-Komprimierungsmethode verwendet. Standardmäßig komprimiert es die Datei gzip (.gz)-Format.
Lassen Sie mich Ihnen einige praktische Beispiele zeigen. Für diese Anleitung verwende ich archlinux.iso Datei (Größe 677,4 MB ) zum Testen.
Dateien komprimieren
Um eine Datei mit Standardoptionen zu komprimieren, führen Sie einfach Folgendes aus:
pigz <path-to-file>
Beispiel:
$ pigz archlinux.iso
Der obige Befehl komprimiert die angegebene Datei, z. B. archlinux.iso und speichern Sie es als archlinux.iso.gz im aktuellen Arbeitsverzeichnis.
Bitte beachten Sie, dass der obige Befehl die Originaldatei, d. h. archlinux.iso, nach dem Komprimieren löscht. Wenn Sie die Originaldatei nicht löschen möchten, verwenden Sie -k (behalten), um Pigz anzuweisen, die Originaldatei nach der Verarbeitung nicht zu löschen.
$ pigz -k archlinux.iso
Inhalt einer Archivdatei auflisten
Um den Inhalt der obigen archivierten Datei aufzulisten, ohne sie zu extrahieren, verwenden Sie -l Flagge.
$ pigz -l archlinux.iso.gz compressed original reduced name 654901763 677380096 3.3% archlinux.iso
Wie Sie in der obigen Ausgabe sehen können, wurde die Eingabedatei gegenüber ihrer ursprünglichen Größe um 3,3 % verkleinert.
Komprimierungsmethoden angeben
Pigz unterstützt die folgenden Komprimierungsmethoden:
- Langsamste und beste Komprimierung (-9)
- Schnellste und weniger Komprimierung (-1)
- Keine Komprimierung (-0)
- Standardkomprimierung (-6)
Um beispielsweise eine Datei mit der besten Komprimierungsmethode (langsam) zu komprimieren, führen Sie Folgendes aus:
$ pigz -9 archlinux.iso
Eine Datei mit weniger Komprimierung komprimieren (schnell):
$ pigz -1 archlinux.iso
Keine Komprimierung:
$ pigz -0 archlinux.iso
Komprimierungsformat ändern
Standardmäßig speichert es die Ausgabedatei in gzip Format. Sie können es jedoch in ein anderes Format ändern.
Der folgende Befehl komprimiert die angegebene Datei zu zlib (.zz) statt gzip-Format:
$ pigz -k -z archlinux.iso
Hier haben wir das -k verwendet (Kleinbuchstaben), um die Originaldatei nach dem Komprimieren beizubehalten.
Ähnlich, um die Datei in zip zu komprimieren verwenden Sie -K (Großbuchstaben) Flag:
$ pigz -k -K archlinux.iso
Verzeichnisse komprimieren
Pigz hat keine Möglichkeit, Ordner direkt zu komprimieren. Wir können dies jedoch erreichen, indem wir tar kombinieren Befehl mit pigz wie unten.
$ tar cf - Pictures/ | pigz > pictures.tar.gz
Der obige Befehl komprimiert den Ordner Pictures und speichert ihn als Datei pictures.tar.gz.
Als einer unserer Leser Wazz Wie im Kommentarbereich unten gesagt, können wir auch den Parameter „use-compress-program“ in tar verwenden, um pigz auszuführen, anstatt es auszugeben.
Beispiel:
$ tar --use-compress-program=pigz -cf yourfile.tar.gz folder1 folder2
Anzahl der Prozessoren beim Komprimieren begrenzen
Wie ich bereits sagte, nutzt Pigz beim Komprimieren von Dateien mehrere Prozessoren und Kerne bis zum Anschlag aus. Sie können dieses Verhalten mit -p ändern Flagge.
Zum Beispiel wird der folgende Befehl eine Datei mit der besten Komprimierungsmethode und 4 Prozessoren komprimieren und die Originaldatei behalten:
$ pigz -9 -k -p4 archlinux.iso
Um die Anzahl der Prozessorkerne unter Linux zu ermitteln, lesen Sie die folgende Anleitung:
- So ermitteln Sie die Anzahl der CPU-Kerne über die Befehlszeile in Linux
Dateien dekomprimieren
Wir können die komprimierten Dateien mit pigz -d in ihre ursprüngliche Form dekomprimieren oder unpigz Befehle.
$ pigz -d archlinux.iso.gz
Oder,
$ unpigz archlinux.iso.gz
Weitere Einzelheiten finden Sie im Hilfebereich und auf den Manpages:
$ pigz --help
$ man pigz
Gzip vs. Pigz – Leistungsvergleich
Ich habe die archlinux.iso getestet (Größe 677,4 MB )-Datei mit den Dienstprogrammen Pigz und Gzip. Hier sind die Ergebnisse:
Komprimierung mit Gzip:
$ time gzip archlinux.iso real 0m35.086s user 0m32.719s sys 0m1.333s
Komprimierung mit Pigz:
$ time pigz archlinux.iso real 0m12.545s user 0m46.376s sys 0m1.520s
Dekomprimierung mit Gzip:
$ time gzip -d archlinux.iso.gz real 0m6.847s user 0m5.621s sys 0m0.783s
Dekompression mit Pigz:
$ time unpigz archlinux.iso.gz real 0m2.398s user 0m2.370s sys 0m1.931s
Wie Sie in den obigen Ausgaben sehen können, kann Pigz eine einzelne Datei von 677,4 MB komprimieren und dekomprimieren zweimal schneller als mit gzip.
Wenn Sie also ein modernes System mit mehreren Prozessoren und mehreren Kernen haben und größere Dateien so schnell wie möglich komprimieren möchten, indem Sie alle verfügbaren CPU-Kerne verwenden, ist pigz eine gute Wahl! Probieren Sie es aus und teilen Sie uns Ihre Meinung zum Pigz-Komprimierungsprogramm im Kommentarbereich unten mit.
Verwandte Lektüre:
- So komprimieren und dekomprimieren Sie Dateien unter Linux
- So archivieren Sie Dateien und Verzeichnisse unter Linux