Wyszukiwanie w witrynie

Jak szybciej kompresować pliki za pomocą narzędzia Pigz w systemie Linux


Napisany przez Marka Adlera, Pigz jest akronimem od Parallel Implementation GZip. To sprytne narzędzie do kompresji, które pomaga kompresować pliki z niesamowitą szybkością. Jako ulepszenie starego, dobrego narzędzia gzip, wykorzystuje ono wiele rdzeni i procesorów do kompresji danych.

Ten przewodnik rzuca więcej światła na Pigz i pokazuje, jak używać narzędzia do kompresji plików w systemach Linux.

Instalowanie Pigza na systemach Linux

Instalacja Pigz to bułka z masłem, ponieważ pakiet Pigz znajduje się w oficjalnych repozytoriach głównych dystrybucji, takich jak Debian i CentOS .

Możesz zainstalować Pigz za pomocą jednego polecenia w różnych dystrybucjach, korzystając z odpowiednich menedżerów pakietów w następujący sposób.

sudo apt install pigz  [On Debian/Ubuntu]
sudo dnf install pigz  [On CentOS/RHEL/Fedora]
sudo pacman -S pigz    [On Arch/Manjaro Linux] 
OR
yay -S pigz

Jak kompresować pliki za pomocą Pigz

Aby skompresować pojedynczy plik do formatu ZIP, użyj składni.

pigz filename

W tym przewodniku do celów demonstracyjnych użyjemy pliku ubuntu-20.04-beta-desktop-amd64.iso. Aby skompresować plik, wykonaj:

pigz ubuntu-20.04-beta-desktop-amd64.iso

Jednak polecenie usuwa oryginalny plik po kompresji, jak mogłeś zauważyć. Aby zachować oryginalny plik po kompresji, uruchom go z opcją -k, jak pokazano.

pigz -k ubuntu-20.04-beta-desktop-amd64.iso

Z danych wyjściowych wyraźnie wynika, że oryginalny plik został zachowany nawet po kompresji.

Sprawdź zawartość skompresowanego pliku w systemie Linux

Aby sprawdzić zawartość skompresowanego pliku, w tym statystyki osiągniętego stopnia kompresji, użyj opcji -l z poleceniem pigz:

pigz -l ubuntu-20.04-beta-desktop-amd64.iso.gz

Na wyjściu widać nie tylko zawartość spakowanego pliku, ale także procent kompresji, który w tym przypadku wynosi 1,9%.

Dodatkowo możesz używać różnych poziomów kompresji od 1 do 9. Obsługiwane są następujące poziomy kompresji:

  • 6 – Domyślna kompresja.
  • 1 – najszybszy, ale oferujący najmniejszą kompresję.
  • 9 – Najwolniejsza, ale najlepsza kompresja.
  • 0 – Brak kompresji.

Na przykład, aby skompresować plik z najlepszym poziomem kompresji, wykonaj:

pigz -9 ubuntu-20.04-beta-desktop-amd64.iso

Jak skompresować katalog za pomocą Pigz

Sam Pigz nie ma opcji kompresji folderu, kompresuje tylko pojedyncze pliki. Jako obejście, pigz jest używany w połączeniu z poleceniem tar do zipowania katalogów.

Aby skompresować katalog, użyj argumentu --use-compress-program, jak pokazano:

tar --use-compress-program="pigz -k " -cf dir1.tar.gz dir1

Jak ograniczyć liczbę procesorów podczas kompresji

Wspomnieliśmy wcześniej, że narzędzie pigz wykorzystuje wiele rdzeni i procesorów podczas kompresji plików. Możesz określić liczbę używanych rdzeni za pomocą opcji -p.

W poniższym przykładzie zastosowaliśmy najlepszą kompresję (oznaczoną przez -9) z 4 procesorami (-p4), zachowując oryginał plik (-k).

pigz -9 -k -p4 ubuntu-20.04-beta-desktop-amd64.iso

Jak dekompresować pliki za pomocą Pigz

Aby zdekompresować plik lub katalog za pomocą pigz, użyj opcji -d lub polecenia unpigz.

Korzystając z naszego skompresowanego pliku ISO, polecenie będzie następujące:

pigz -d ubuntu-20.04-beta-desktop-amd64.iso
OR
unpigz dir1.tar.gz

Porównanie Pigz vs Gzip

Poszliśmy nieco dalej i porównaliśmy Pigz z narzędziem Gzip.

Oto wyniki:

Kompresja Gzipem

time gzip ubuntu-20.04-beta-desktop-amd64.iso

Kompresja Pigza

time pigz ubuntu-20.04-beta-desktop-amd64.iso

Dekompresja Gzipem

time gzip -d ubuntu-20.04-beta-desktop-amd64.iso.gz

Dekompresja Pigza

time unpigz ubuntu-20.04-beta-desktop-amd64.iso.gz

Z porównania wyraźnie widać, że czasy kompresji i dekompresji dla Pigz są znacznie krótsze niż dla Gzip. Oznacza to, że narzędzie wiersza poleceń Pigz jest znacznie szybsze niż narzędzie Gzip

Więcej szczegółów na temat użycia polecenia pigz znajdziesz na stronach podręcznika.

man pigz

Ponadto uruchom poniższe polecenie, aby wyświetlić wszystkie opcje dostępne dla polecenia pigz.

pigz --help

I tam to masz. Omówiliśmy narzędzie wiersza poleceń pigz i pokazaliśmy, jak kompresować i dekompresować pliki. Poszliśmy dalej i porównaliśmy Pigz z Gzip i odkryliśmy, że Pigz jest lepszy z tych dwóch pod względem szybkości zarówno kompresji, jak i dekompresji. Zachęcamy Cię do spróbowania i podzielenia się wrażeniami.