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