Cochon , abréviation de p arallèle i implémentation de gz ip, est un utilitaire de compression multithread gratuit et open source pour compresser et décompresser des fichiers sous Linux. Pigz, prononcé comme pig-zee , utilise le zlib et pthread bibliothèques et tire pleinement parti de plusieurs processeurs et de plusieurs cœurs lors de la compression des données. Étant donné que pigz se comprime à l'aide de threads pour utiliser plusieurs processeurs et cœurs, il peut être en mesure d'archiver des fichiers plus volumineux beaucoup plus rapidement qu'avec gzip. Pour faire simple, pigz fait ce que fait gzip, mais il alloue le travail à plusieurs processeurs et cœurs lors de la compression et accélère considérablement le processus de compression/décompression. Dans ce guide, apprenons à compresser et décompresser des fichiers en parallèle à l'aide de Pigz sous Linux.
Installer Pigz sur Linux
Pigz est disponible dans les dépôts officiels des systèmes d'exploitation Linux populaires.
Sur Arch Linux et ses variantes comme Manjaro Linux, activez [Communauté] référentiel et installez Pigz à l'aide de la commande :
$ sudo pacman -S pigz
Sur CentOS 8/7/6 :
$ sudo yum install pigz
Sur Debian :
$ sudo apt-get install pigz
Sur Fedora :
$ sudo dnf install pigz
Sur Ubuntu , Linux Mint :
$ sudo add-apt-repository universe
$ sudo apt install pigz
Sur openSUSE :
$ sudo zypper install pigz
Sur les autres distributions Linux, compilez et installez à partir des sources comme indiqué ci-dessous.
Tout d'abord, assurez-vous d'avoir installé les prérequis suivants :
- faire
- gcc
- zlib-devel
Par exemple, sur les systèmes basés sur Debian, vous pouvez installer les packages ci-dessus à l'aide de la commande :
$ sudo apt install make gcc zlib-devel
Sur les systèmes basés sur RPM :
$ sudo yum install make gcc zlib-devel
Téléchargez ensuite la dernière version de Pigz sur le site officiel (le lien est donné à la fin) :
$ wget https://zlib.net/pigz/pigz-2.4.tar.gz
Extrayez le fichier tar pigz :
$ tar -xzvf pigz-2.4.tar.gz
Cette commande extraira le contenu dans un dossier nommé pigz-2.4 dans le répertoire de travail courant.
CD dans le répertoire "pigz-2.4":
$ cd pigz-2.4
Compilez et installez-le à l'aide de la commande suivante :
$ make
Copiez le binaire pigz dans votre $PATH, par exemple /usr/local/bin :
$ sudo cp pigz /usr/local/bin/
Déconnectez-vous et reconnectez-vous pour commencer à utiliser pigz.
Compresser et décompresser des fichiers en parallèle à l'aide de Pigz
Pigz divise l'entrée donnée en 128 Ko morceaux et comprime chacun d'eux en parallèle. Le format de données compressé généré est au format gzip, zlib ou zip à entrée unique à l'aide de la méthode de compression deflate. Par défaut, il compresse le fichier gzip (.gz).
Laissez-moi vous montrer quelques exemples pratiques. Pour les besoins de ce guide, j'utiliserai archlinux.iso fichier (taille 677,4 Mo ) pour les tests.
Compresser les fichiers
Pour compresser un fichier avec les options par défaut, exécutez simplement :
pigz <path-to-file>
Exemple :
$ pigz archlinux.iso
La commande ci-dessus compressera le fichier donné, c'est-à-dire archlinux.iso et enregistrez-le sous archlinux.iso.gz dans le répertoire de travail courant.
Veuillez noter que la commande ci-dessus supprimera le fichier d'origine, c'est-à-dire archlinux.iso après l'avoir compressé. Si vous ne voulez pas supprimer le fichier d'origine, utilisez -k (conserver) pour indiquer à Pigz de ne pas supprimer le fichier d'origine après l'avoir traité.
$ pigz -k archlinux.iso
Liste du contenu d'un fichier d'archive
Pour lister le contenu du fichier archivé ci-dessus, sans l'extraire, utilisez -l drapeau.
$ pigz -l archlinux.iso.gz compressed original reduced name 654901763 677380096 3.3% archlinux.iso
Comme vous pouvez le voir dans la sortie ci-dessus, le fichier d'entrée a été réduit de 3,3 % par rapport à sa taille d'origine.
Spécifier les méthodes de compression
Pigz prend en charge les méthodes de compression suivantes :
- Compression la plus lente et la meilleure (-9)
- Le plus rapide et le moins compressé (-1)
- Pas de compression (-0)
- Compression par défaut (-6)
Par exemple, pour compresser un fichier en utilisant la meilleure méthode de compression (lente), exécutez :
$ pigz -9 archlinux.iso
Compresser un fichier avec moins de compression (rapide) :
$ pigz -1 archlinux.iso
Pas de compression :
$ pigz -0 archlinux.iso
Modifier le format de compression
Par défaut, il enregistre le fichier de sortie dans gzip format. Vous pouvez cependant le modifier dans un format différent.
La commande suivante compresse le fichier donné en zlib (.zz) au lieu du format gzip :
$ pigz -k -z archlinux.iso
Ici, nous avons utilisé le -k (minuscule) pour conserver le fichier d'origine après l'avoir compressé.
De même, pour compresser le fichier en zip format, utilisez -K indicateur (majuscule) :
$ pigz -k -K archlinux.iso
Compresser les répertoires
Pigz n'a aucune option pour compresser directement les dossiers. Cependant, nous pouvons y parvenir en combinant tar commande avec pigz comme ci-dessous.
$ tar cf - Pictures/ | pigz > pictures.tar.gz
La commande ci-dessus compressera le dossier Images et l'enregistrera en tant que fichier pictures.tar.gz.
En tant que l'un de nos lecteurs Wazz dit dans la section des commentaires ci-dessous, nous pouvons également utiliser le paramètre "use-compress-program" dans tar pour exécuter pigz au lieu de le diffuser.
Exemple :
$ tar --use-compress-program=pigz -cf yourfile.tar.gz folder1 folder2
Limiter le nombre de processeurs lors de la compression
Comme je l'ai déjà dit, Pigz exploite à fond plusieurs processeurs et cœurs lors de la compression de fichiers. Vous pouvez modifier ce comportement en utilisant -p drapeau.
Par exemple, la commande suivante compressera un fichier en utilisant la meilleure méthode de compression et 4 processeurs et conservera le fichier d'origine :
$ pigz -9 -k -p4 archlinux.iso
Pour connaître le nombre de cœurs de processeur sous Linux, reportez-vous au guide suivant :
- Comment trouver le nombre de cœurs de processeur à partir de la ligne de commande sous Linux
Décompresser les fichiers
Nous pouvons décompresser les fichiers compressés dans leur forme originale en utilisant pigz -d ou unpigz commandes.
$ pigz -d archlinux.iso.gz
Ou,
$ unpigz archlinux.iso.gz
Pour plus de détails, reportez-vous à la section d'aide et aux pages de manuel :
$ pigz --help
$ man pigz
Gzip vs Pigz - Comparaison des performances
J'ai testé le archlinux.iso (taille 677,4 Mo ) fichier avec les utilitaires Pigz et Gzip. Voici les résultats :
Compression avec Gzip :
$ time gzip archlinux.iso real 0m35.086s user 0m32.719s sys 0m1.333s
Compression avec Pigz :
$ time pigz archlinux.iso real 0m12.545s user 0m46.376s sys 0m1.520s
Décompression avec Gzip :
$ time gzip -d archlinux.iso.gz real 0m6.847s user 0m5.621s sys 0m0.783s
Décompression avec Pigz :
$ time unpigz archlinux.iso.gz real 0m2.398s user 0m2.370s sys 0m1.931s
Comme vous pouvez le voir dans les sorties ci-dessus, Pigz peut compresser et décompresser un seul fichier de 677,4 Mo deux fois plus rapide qu'avec gzip.
Donc, si vous avez un système moderne multiprocesseur et multicœur et que vous souhaitez compresser des fichiers plus volumineux aussi rapidement que possible, en utilisant tous vos cœurs de processeur disponibles, pigz sera un bon choix ! Essayez-le et faites-nous part de vos réflexions sur l'utilitaire de compression Pigz dans la section des commentaires ci-dessous.
Lire connexe :
- Comment compresser et décompresser des fichiers sous Linux
- Comment archiver des fichiers et des répertoires sous Linux