So komprimieren Sie Archive mit allen CPU-Kernen mit Tar
Wenn Sie schon einmal große Mengen Teer verdichten mussten, wissen Sie, wie schmerzhaft das sein kann. Es geht oft sehr langsam, und Sie ertappen sich dabei, dass Sie Strg + C drücken, um die Aufgabe zu beenden, und sie einfach vergessen. Es gibt jedoch noch einige andere Tools, die tar verwenden kann, und sie sind eine großartige Möglichkeit, die heutigen CPUs mit hohem Multithread-Anteil zu nutzen und Ihre Tar-Archivierung zu beschleunigen. Dieser Artikel zeigt Ihnen, wie Sie tar dazu bringen, beim Komprimieren von Archiven unter Linux alle Kerne zu nutzen.
Die drei wichtigsten Tools, um die es hier geht, sind pigz, pbzip2 und pxz. Es gibt einige subtile Unterschiede zwischen den Tools, aber die Unterschiede liegen zwischen gzip, bzip2 und xz. In dieser Reihenfolge erhöhen sich die Komprimierungsstufen, was bedeutet, dass ein mit gzip komprimiertes Archiv größer ist als eines, das mit xz komprimiert wurde, gzip jedoch natürlich weniger Zeit benötigt als xz. bzip2 liegt irgendwo in der Mitte.
Das „p“, mit dem die Namen der einzelnen Tools beginnen, bedeutet „parallel“. Parallelisierung ist etwas, das im Laufe der Jahre immer wichtiger geworden ist – wie gut etwas alle CPU-Kerne umfasst. Da CPUs wie die Epyc- und Threadripper-Reihen von AMD 64 Kerne und 128 Threads erreichen können, ist es wichtig zu verstehen, welche Anwendungen davon profitieren können. Diese Komprimierungsfunktionen sind Hauptkandidaten.
Um die Tools zu installieren, können Sie sich einfach an Ihre Repos wenden.
sudo apt install pigz pbzip2 pxz # Debian/Ubuntu sudo dnf install pigz pbzip2 pxz # Fedora sudo pacman -Sy pigz pbzip2 pxz # Arch LinuxAus Gründen der Konsistenz konzentriert sich dieser Artikel auf pxz. Sie können sich dieses Tutorial für pigz ansehen.
[enlazatom_show_links]Komprimieren von Archiven mit Tar
Die Syntax von tar ist ziemlich einfach. Um ein Verzeichnis einfach zu komprimieren, können Sie einen Befehl wie diesen verwenden:
tar czf linux-5.10-rc3.tar.gz linux/ tar cjf linux-5.10-rc3.tar.bz2 linux/ tar cJf linux-5.10-rc3.tar.xz linux/Der erste verwendet gzip, der zweite bzip2 und der dritte xz. Der Dateiname und das Verzeichnis variieren je nachdem, was Sie tun, aber ich habe den Linux-Kernel von GitHub in mein „/home“-Verzeichnis gezogen und werde ihn verwenden. Also beginne ich diesen Befehl mit dem Zeitbefehl vorne, um zu sehen, wie lange es dauert. Sie können auch sehen, dass xz auf diesem System den höchsten Prozentsatz meiner CPU beansprucht, aber nur einen Kern auf 100 Prozent fixiert.
Und wie Sie sehen, dauerte die Komprimierung von Linux 5.10-rc3 auf meinem alternden i7-2600 sehr lange (ungefähr 28 Minuten).
Hier kommen diese parallelen Komprimierungstools zum Einsatz. Wenn Sie eine große Datei komprimieren und diese schneller erledigen möchten, kann ich diese Tools nur wärmstens empfehlen.
Sie können tar entweder mit der Option --use-compression-program anweisen, ein Komprimierungsprogramm zu verwenden, oder Sie können das etwas einfachere Befehlsflag -I verwenden. Ein Beispiel für die Syntax für eines dieser Tools wäre wie folgt:
tar -I pigz -cf linux-5.10-rc3.tar.gz linux/ tar -I pbzip2 -cf linux-5.10-rc3.tar.bz2 linux/ tar -I pxz -cf linux-5.10-rc3.tar.xz linux /Testen wir es einmal und sehen, wie lange es dauert, bis mein System den Linux-Kernel komprimiert und Zugriff auf alle acht Threads meiner CPU hat. Sie können meine HTOP-Anzeige sehen, die alle Threads zeigt, die aufgrund von pxz bei 100-prozentiger Auslastung angepinnt sind.
Sie sehen, dass das Komprimieren dieses Archivs wesentlich weniger Zeit in Anspruch nahm (ungefähr sieben Minuten!), und das dank Multitasking. Im Hintergrund läuft eine virtuelle Maschine, und ich surfe gerade im Internet. Der Linux-Kernel-Hardware-Scheduler stellt Ihnen alles zur Verfügung, was Sie für Ihre persönlichen Aufgaben benötigen. Wenn Sie also Ihren pxz-Befehl laufen lassen, ohne dass andere Dinge auf Ihrem System laufen, können Sie ihn möglicherweise schneller erledigen.
Anpassen der Komprimierungsstufen mit pigz, pbzip2 und pxz
Sie können auch Komprimierungsstufen an pxz übergeben, um die Datei noch kleiner zu machen. Dies erfordert mehr RAM, CPU und Zeit, aber es lohnt sich, wenn Sie wirklich eine kleine Datei benötigen. Hier ist ein Vergleich der beiden Befehle und ihrer Ergebnisse nebeneinander.
Die Komprimierung ist nicht viel höher und der Zeitaufwand lohnt sich nicht unbedingt, aber wenn jedes Megabyte zählt, ist es trotzdem eine tolle Option.
Ich hoffe, Ihnen hat dieser Leitfaden zur Verwendung aller Kerne zum Komprimieren von Archiven mit tar gefallen. Schauen Sie sich auch einige unserer anderen Linux-Inhalte an, z. B. wie man einen neuen PC für Linux baut, wie man Apt beherrscht und ein Apt-Guru wird und wie man Arch Linux auf einem Raspberry Pi installiert.
Schreibe einen Kommentar