Pigz – Utilisez tous les cœurs de votre processeur pour compresser vos fichiers

wallpaper-1085306Crédits image

Si vous êtes comme moi et que vous avez l’habitude de classer vos fichiers dans des archives compressés, vous êtes sans doute sensibles aux capacités des différents algorithmes de compression et bien entendu, vous aimez que ce soit rapide. Si vous tournez sous GNU/Linux vous utilisez certainement des formats comme TAR, Gzip, Bzip2 ou encore 7z qui sont très bien. Il existe cependant un autre format peu connu des utilisateurs qui se nomme pigz et qui a la particularité d’utiliser automatiquement l’ensemble des cœurs disponibles dans votre processeur.

C’est assez sympa car même si nous sommes déjà en 2013, les logiciels courants de compression ne tirent pas toujours profit (pour ne pas dire jamais) des architectures multi-cœurs de nos processeurs et n’utilisent donc pas le Multithreading. Si vous manipulez beaucoup de fichiers compressés vous ne perdez donc rien à essayer Pigz, d’autant plus que les différents bench que j’ai pu voir sur le sujet ont l’air de noter un réel gain de performance.

Si ça vous tente sachez que Pigz (qui vous l’avez remarqué n’est pas un petit cochon) est disponible dans les dépôts des principales distributions GNU/Linux. Vous pouvez par exemple l’installer sur Debian, Ubuntu et dérivés à l’aide d’un simple :

sudo apt-get install pigz

Si vous ne le trouvez pas dans vos dépôts vous pouvez toujours vous procurer les sources en cliquant sur ce lien (site officiel).

Pigz s’utilisant en ligne de commande vous pouvez lancer un petit « man pigz » ou « pigz –help » pour prendre connaissance des options de base.

pigz

Si vous voulez en savoir encore plus sur le sujet, je vous conseille également de jeter un œil à cet article qui date un peu, mais qui est très intéressant. Je n’ai pas eu le temps de faire mon propre bench (fin de semaine chargée) alors si vous testez n’hésitez pas à nous faire un petit retour ;)

Source memo-linux.com


8 Responses

  1. 7zipinfo 30 août 2013 / 12 h 43 min

    Supporte t il 7zip en native ou install il la dependencence p7zip

  2. Adrien.D 30 août 2013 / 12 h 14 min

    Petit complément d’info : Il existe aussi pbzip2 ou lbzip2 pour du BZ2

    Et pxz pour LZMA2

    Compresser avec tar :
    tar -I pigz -cvf archive.tar.gz fic1 fic2 (c’est -I un « i » majuscule)

    Décompresser avec tar
    tar -I pigz -xvf archive.tar.gz

    pigz, pbzip2, lbzip2 et pxz sont utilisables comme gzip bzip2 et xz donc il est possible de faire des liens symboliques :
    mv /bin/gzip /bin/gzip.ori
    mv /bin/gunzip /bin/gunzip.ori
    ln -sv /usr/bin/pigz /bin/gzip
    ln -sv /usr/bin/pigz /bin/gunzip

    mv /bin/bzip2 /bin/bzip2.ori
    mv /bin/bunzip2 /bin/bunzip2.ori
    ln -sv /usr/bin/lbzip2 /bin/bzip2
    ln -sv /usr/bin/lbunzip2 /bin/bunzip2

    Ainsi il sera possible de faire comme avant avec tar et pigz se substitue naturellement à gzip :
    tar czvf archive.tar.gz fic1 fic2 (et là, avec htop le constat est que le multithreading est actif)

    J’ai prévu de faire un article sur mon site expliquant tout cela ;)

    Attention, fedora c’est /usr/bin pour la localisation de bzip2 et gzip

    • Adrien.D 30 août 2013 / 12 h 20 min

      Modification du commentaire ci-dessus : cause erreur dans le ln -sv et les chemins des exécutables :D

      • noireaude 30 août 2013 / 21 h 29 min

        Merci pour ce complément d’info, y’a de quoi faire :)

        • Adrien.D 31 août 2013 / 15 h 33 min

          De rien, je vais expliquer tout cela dans un petit article avec quelques tests de performance ;)

          • noireaude 31 août 2013 / 15 h 41 min

            Tu nous fileras le lien ;)

  3. alpha_one_x86 30 août 2013 / 10 h 42 min

    Gzip et Bz2 (tar étant non compressé), sont déjà tellement rapide, que c’est le disque dur le facteur limitant. 7z (xz, lzma2), est par algorithme difficilement parallélisable. Et coté performance, il vaut mieux l’OpenCL que le multi-coeur, pour avoir 10x plus de performance qu’un quad coeur avec une carte moyenne gamme.

    • noireaude 30 août 2013 / 10 h 55 min

      En effet tar est toujours associé à un autre module pour la compression(je le savais en plus grr). Pour le reste tu n’as pas tort, ça ce discute en effet ;)

Comments are closed.