GNU/Linux >> Znalost Linux >  >> Linux

Pigz – Komprimujte a dekomprimujte soubory paralelně v Linuxu

Pigz , zkratka pro p aralel i implementace gz ip, je bezplatný, open source vícevláknový komprimační nástroj pro kompresi a dekomprimaci souborů v Linuxu. Pigz, vyslovováno jako pig-zee , používá zlib a pthread knihovny a při kompresi dat plně využívá výhod více procesorů a více jader. Protože pigz komprimuje pomocí vláken, aby využil více procesorů a jader, může být schopen archivovat větší soubory mnohem rychleji než s gzip. Jednoduše řečeno, pigz dělá to, co gzip, ale při komprimaci alokuje práci více procesorům a jádrům a výrazně urychluje proces komprese/dekomprese. V této příručce se naučíme komprimovat a dekomprimovat soubory paralelně pomocí Pigz v Linuxu.

Nainstalujte Pigz na Linux

Pigz je k dispozici v oficiálních repozitářích oblíbených operačních systémů Linux.

V systému Arch Linux a jeho varianty jako Manjaro Linux, povolte [Komunita] úložiště a nainstalujte Pigz pomocí příkazu:

$ sudo pacman -S pigz

V systému CentOS 8/7/6 :

$ sudo yum install pigz

V Debianu :

$ sudo apt-get install pigz

Na Fedoře :

$ sudo dnf install pigz

Na Ubuntu , Linux Mint :

$ sudo add-apt-repository universe
$ sudo apt install pigz

Na openSUSE :

$ sudo zypper install pigz

V jiných distribucích Linuxu zkompilujte a nainstalujte ze zdroje, jak je uvedeno níže.

Nejprve se ujistěte, že jste nainstalovali následující předpoklady:

  • vytvořit
  • gcc
  • zlib-devel

Například na systémech založených na Debianu můžete nainstalovat výše uvedené balíčky pomocí příkazu:

$ sudo apt install make gcc zlib-devel

Na systémech založených na RPM:

$ sudo yum install make gcc zlib-devel

Poté si stáhněte nejnovější verzi Pigz z oficiálních stránek (odkaz je uveden na konci):

$ wget https://zlib.net/pigz/pigz-2.4.tar.gz

Rozbalte soubor pigz tar:

$ tar -xzvf pigz-2.4.tar.gz

Tento příkaz rozbalí obsah složky s názvem pigz-2.4 v aktuálním pracovním adresáři.

CD do adresáře "pigz-2.4":

$ cd pigz-2.4

Zkompilujte a nainstalujte jej pomocí následujícího příkazu:

$ make

Zkopírujte binární soubor pigz do vaší $PATH, například /usr/local/bin :

$ sudo cp pigz /usr/local/bin/

Chcete-li začít používat pigz, odhlaste se a znovu přihlaste.

Komprimovat a dekomprimovat soubory paralelně pomocí Pigz

Pigz rozdělí daný vstup na 128 KB odřezává a stlačuje každý z nich paralelně. Vygenerovaný komprimovaný formát dat je ve formátu gzip, zlib nebo zip s jedním záznamem pomocí metody komprese deflate. Ve výchozím nastavení komprimuje soubor gzip (.gz).

Dovolte mi, abych vám ukázal několik praktických příkladů. Pro účely této příručky budu používat archlinux.iso soubor (velikost 677,4 MB ) pro testování.

Komprimovat soubory

Chcete-li komprimovat soubor s výchozími možnostmi, jednoduše spusťte:

pigz <path-to-file>

Příklad:

$ pigz archlinux.iso

Výše uvedený příkaz zkomprimuje daný soubor, tj. archlinux.iso a uložte jej jako archlinux.iso.gz v aktuálním pracovním adresáři.

Vezměte prosím na vědomí, že výše uvedený příkaz smaže původní soubor, tj. archlinux.iso po jeho komprimaci. Pokud původní soubor smazat nechcete, použijte -k (ponechat), abyste Pigzovi dali pokyn, aby po zpracování původní soubor nesmazal.

$ pigz -k archlinux.iso

Seznam obsahu archivního souboru

Chcete-li zobrazit obsah výše archivovaného souboru, aniž byste jej rozbalili, použijte -l vlajka.

$ pigz -l archlinux.iso.gz 
compressed   original reduced  name
 654901763  677380096    3.3%  archlinux.iso

Jak můžete vidět na výše uvedeném výstupu, vstupní soubor byl zmenšen o 3,3 % z původní velikosti.

Určete metody komprese

Pigz podporuje následující kompresní metody:

  • Nejpomalejší a nejlepší komprese (-9)
  • Nejrychlejší a nižší komprese (-1)
  • Žádná komprese (-0)
  • Výchozí komprese (-6)

Chcete-li například komprimovat soubor pomocí nejlepší metody komprese (pomalu), spusťte:

$ pigz -9 archlinux.iso

Komprimujte soubor s nižší kompresí (rychle):

$ pigz -1 archlinux.iso

Žádná komprese:

$ pigz -0 archlinux.iso

Změnit formát komprese

Ve výchozím nastavení ukládá výstupní soubor do gzip formát. Můžete jej však změnit na jiný formát.

Následující příkaz zkomprimuje daný soubor do zlib (.zz) místo formátu gzip:

$ pigz -k -z archlinux.iso

Zde jsme použili -k (malá písmena), chcete-li zachovat původní soubor i po jeho komprimaci.

Podobně komprimujte soubor v zip formátu, použijte -K (velká písmena) příznak:

$ pigz -k -K archlinux.iso

Komprimovat adresáře

Pigz nemá žádnou možnost přímo komprimovat složky. Toho však můžeme dosáhnout kombinací tar příkaz s pigz jako níže.

$ tar cf - Pictures/ | pigz > pictures.tar.gz

Výše uvedený příkaz zkomprimuje složku Obrázky a uloží ji jako soubor images.tar.gz.

Jako jeden z našich čtenářů Wazz jak je uvedeno v sekci komentářů níže, můžeme také použít parametr „use-compress-program“ v rámci tar ke spuštění pigz místo toho, abychom to rozdělovali.

Příklad:

$ tar --use-compress-program=pigz -cf yourfile.tar.gz folder1 folder2

Omezit počet procesorů při komprimaci

Jak jsem již řekl, Pigz využívá více procesorů a jader při komprimaci souborů. Toto chování můžete změnit pomocí -p vlajka.

Například následující příkaz zkomprimuje soubor pomocí nejlepší kompresní metody a 4 procesorů a zachová původní soubor:

$ pigz -9 -k -p4 archlinux.iso

Chcete-li zjistit počet procesorových jader v Linuxu, podívejte se na následující příručku:

  • Jak zjistit počet jader CPU z příkazového řádku v Linuxu

Dekomprimujte soubory

Komprimované soubory můžeme dekomprimovat do původní podoby pomocí pigz -d nebo unpigz příkazy.

$ pigz -d archlinux.iso.gz

Nebo,

$ unpigz archlinux.iso.gz

Další podrobnosti naleznete v části nápovědy a manuálových stránkách:

$ pigz --help
$  man pigz

Gzip vs Pigz – srovnání výkonu

Testoval jsem archlinux.iso (velikost 677,4 MB ) soubor s nástroji Pigz a Gzip. Zde jsou výsledky:

Komprese pomocí Gzip:

$ time gzip archlinux.iso

real	0m35.086s
user	0m32.719s
sys	0m1.333s

Komprese pomocí Pigz:

$ time pigz archlinux.iso

real 0m12.545s
user 0m46.376s
sys 0m1.520s

Dekomprese pomocí Gzip:

$ time gzip -d archlinux.iso.gz 

real	0m6.847s
user	0m5.621s
sys	0m0.783s

Dekomprese pomocí Pigz:

$ time unpigz archlinux.iso.gz 

real	0m2.398s
user	0m2.370s
sys	0m1.931s

Jak můžete vidět na výše uvedených výstupech, Pigz dokáže komprimovat a dekomprimovat jeden soubor o velikosti 677,4 MB dvakrát rychlejší než s gzip.

Pokud tedy máte moderní víceprocesorový, vícejádrový systém a chcete co nejrychleji komprimovat větší soubory s využitím všech dostupných jader CPU, bude pigz dobrou volbou! Vyzkoušejte to a dejte nám vědět své názory na nástroj pro kompresi Pigz v sekci komentářů níže.

Související čtení:

  • Jak komprimovat a dekomprimovat soubory v systému Linux
  • Jak archivovat soubory a adresáře v Linuxu

Linux
  1. Jak archivovat a komprimovat soubory na Linuxu

  2. Linux Odstraňte soubory a adresáře

  3. Všechny Linux Compress/Decompress Commands

  1. 16 příkazů Tar pro kompresi a extrahování souborů v Linuxu

  2. Jak komprimovat a dekomprimovat soubory v Linuxu

  3. Tar Command v Linuxu (komprimovat a dekomprimovat soubory)

  1. Jak komprimovat/dekomprimovat v Linuxu

  2. Jak komprimovat a extrahovat soubory pomocí příkazu tar v systému Linux?

  3. Jak komprimovat a dekomprimovat soubory .bz2 v Linuxu pomocí příkazu bzip2