pigz est une version parallèle de gzip. Bien qu'il n'utilise qu'un seul thread pour la décompression, il lance 3 threads supplémentaires pour la lecture, l'écriture et le calcul de contrôle. Vos résultats peuvent varier, mais nous avons constaté une amélioration significative de la décompression de certains de nos ensembles de données. Une fois que vous avez installé pigz, le fichier tar peut être extrait avec:
+1 FWIW, vous pouvez aussi écrire cela en tant que tar -xvf --use-compress-program=pigz filenamehere. ( -zéquivaut à --use-compress-program=gzip.) Sinon, vous pouvez même créer gzipun lien symbolique vers pigz, et continuer à utiliser -zxvf.
Ruakh
2
@ruakh, j'ai dû mettre -xfaprès --use-compress-program=pigz, ou j'ai eu une erreur. Pour une raison quelconque, ce n'était pas plus rapide que d'utiliser gzip.
Jonderry
Car bzip2il y a pbzip2( ppour parallèle). tar --use-compress-program=pbzip2 -xvf file.tar.bz2.
alfC
Existe-t-il un moyen d'utiliser la pvcommande pour afficher une progression, ou un équivalent, tout en utilisant le --use-compress-program=pigzdrapeau? Pendant la compression, je peux le faire gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData, mais je ne suis pas sûr de savoir comment le faire pendant la décompression / décompression.
Stefan Lasiewski
13
s'il y a beaucoup de petits fichiers dans la boule de tar, annulez le paramètre 'v', essayez à nouveau!
Je n'utilise jamais -v param. Je ne sais pas pourquoi les gens ont besoin de tant de bruit dans la console.
Eimantas
9
@Eimantas Lorsque vous décomposez un élément contenant de nombreux fichiers de plusieurs gigaoctets, vous souhaitez obtenir une indication de ses progrès. :)
Michael Hampton
@ Timhughes: c'est vraiment bon à savoir, s'il vous plaît poster comme une réponse séparée!
smci
Michael Hampton, si vous avez des fichiers de plusieurs gigaoctets mais que vous mélangez avec une grande liste de petits fichiers, vous avez une bonne raison de ne pas utiliser -v. Dans mes tests locaux, la tâche tar est très lente, surtout si tar est exécuté sur un serveur distant. via terminal, ce que je fais est de regarder le répertoire du -s pour que je puisse regarder le répertoire grandir ...
Luciano Andress Martini
Il peut être intéressant d’utiliser --checkpoint=NUMBER( affiche les messages de progression à chaque NUMBERème enregistrement ) au lieu de -v.
Stefan Lasiewski
6
Si vous voulez voir des progrès, utilisez quelque chose comme pv. Voici un exemple:
pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
$ tar -zxvf
méthode est liée à IO ou CPU?Réponses:
pigz est une version parallèle de gzip. Bien qu'il n'utilise qu'un seul thread pour la décompression, il lance 3 threads supplémentaires pour la lecture, l'écriture et le calcul de contrôle. Vos résultats peuvent varier, mais nous avons constaté une amélioration significative de la décompression de certains de nos ensembles de données. Une fois que vous avez installé pigz, le fichier tar peut être extrait avec:
la source
tar -xvf --use-compress-program=pigz filenamehere
. (-z
équivaut à--use-compress-program=gzip
.) Sinon, vous pouvez même créergzip
un lien symbolique verspigz
, et continuer à utiliser-zxvf
.-xf
après--use-compress-program=pigz
, ou j'ai eu une erreur. Pour une raison quelconque, ce n'était pas plus rapide que d'utilisergzip
.bzip2
il y apbzip2
(p
pour parallèle).tar --use-compress-program=pbzip2 -xvf file.tar.bz2
.pv
commande pour afficher une progression, ou un équivalent, tout en utilisant le--use-compress-program=pigz
drapeau? Pendant la compression, je peux le fairegnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData
, mais je ne suis pas sûr de savoir comment le faire pendant la décompression / décompression.s'il y a beaucoup de petits fichiers dans la boule de tar, annulez le paramètre 'v', essayez à nouveau!
la source
--checkpoint=NUMBER
( affiche les messages de progression à chaque NUMBERème enregistrement ) au lieu de-v
.Si vous voulez voir des progrès, utilisez quelque chose comme
pv
. Voici un exemple:la source