Si vous avez déjà eu à compresser de gros volumes avec du goudron, vous saurez à quel point cela peut être pénible. Cela va souvent très lentement et vous vous retrouvez à appuyer sur Ctrl + C pour terminer la tâche et l’oublier. Cependant, il existe d’autres outils que tar peut utiliser, et ils constituent un excellent moyen d’utiliser les processeurs fortement multithreads d’aujourd’hui et d’accélérer votre archivage tar. Cet article vous montre comment faire en sorte que tar utilise tous les cœurs lors de la compression d’archives sous Linux.
Les trois principaux outils en question ici sont pigz, pbzip2 et pxz. Il existe quelques différences subtiles entre les outils, mais les différences se situent entre gzip, bzip2 et xz. Dans cet ordre respectif, les niveaux de compression augmentent, ce qui signifie qu’une archive compressée avec gzip sera plus grande qu’une archive compressée avec xz, mais gzip prendra naturellement moins de temps que xz. bzip2 est quelque part au milieu.
Le « p » qui commence les noms de chacun des outils signifie « parallèle ». La parallélisation est quelque chose qui est devenu de plus en plus pertinent au fil des ans – à quel point quelque chose couvre tous les cœurs de processeur. Avec des processeurs comme les gammes Epyc et Threadripper d’AMD qui peuvent atteindre 64 cœurs et 128 threads, il est important de comprendre quelles applications peuvent en tirer parti. Ces fonctions de compression sont des candidats de choix.
Pour installer les outils, vous pouvez simplement vous tourner vers vos repos.
Cet article se concentre sur pxz par souci de cohérence. Vous pouvez consulter ce tutoriel pour pigz.
Contenu
Compression des archives avec Tar
La syntaxe de tar est assez simple. Pour simplement compresser un répertoire, vous pouvez utiliser une commande comme celle-ci :
Le premier utilisera gzip, le second utilisera bzip2 et le troisième utilisera xz. Le nom de fichier et le répertoire varieront en fonction de ce que vous faites, mais j’ai extrait le noyau Linux de GitHub dans mon répertoire « /home », et je l’utiliserai. Donc, je vais commencer et lancer cette commande avec la commande time à l’avant pour voir combien de temps cela prend. Vous pouvez également voir que xz est répertorié comme prenant le pourcentage le plus élevé de mon processeur sur ce système, mais il n’épingle qu’un seul cœur à 100 %.
Et, comme vous pouvez le voir, il a fallu très longtemps à mes vieux i7-2600 pour compresser Linux 5.10-rc3 (environ 28 minutes).
C’est là que ces outils de compression parallèles sont utiles. Si vous compressez un fichier volumineux et que vous cherchez à le faire plus rapidement, je ne saurais trop recommander ces outils.
Vous pouvez soit dire à tar d’utiliser un programme de compression avec l’option –use-compression-program, soit utiliser un indicateur de commande un peu plus simple de -I. Voici un exemple de syntaxe pour l’un de ces outils :
Testons-le et voyons combien de temps il faut à mon système pour compresser le noyau Linux avec accès aux huit threads de mon processeur. Vous pouvez voir ma lecture htop montrant tous les threads épinglés à 100 pour cent d’utilisation à cause de pxz.
Vous pouvez voir qu’il a fallu beaucoup moins de temps pour compresser cette archive (environ sept minutes !), et c’était avec le multitâche. J’ai une machine virtuelle en arrière-plan et je navigue sur le Web en ce moment. Le planificateur matériel du noyau Linux vous donnera ce dont vous avez besoin pour vos affaires personnelles, donc si vous laissez votre commande pxz s’exécuter sans qu’aucun autre élément ne s’exécute sur votre système, vous pourrez peut-être le faire plus rapidement.
Réglage des niveaux de compression avec pigz, pbzip2 et pxz
Vous pouvez également transmettre des niveaux de compression à pxz pour rendre le fichier encore plus petit. Cela nécessitera plus de RAM, de CPU et de temps, mais cela en vaut la peine si vous avez vraiment besoin d’un petit fichier. Voici une comparaison des deux commandes et de leurs résultats côte à côte.
La compression n’est pas beaucoup plus importante et le temps n’en vaut pas nécessairement la peine, mais si chaque mégaoctet compte, c’est toujours une excellente option.
J’espère que vous avez apprécié ce guide sur l’utilisation de tous les cœurs pour compresser des archives à l’aide de tar. Assurez-vous de consulter certains de nos autres contenus Linux, comme comment construire un nouveau PC pour Linux, maîtriser Apt et devenir un gourou Apt, et comment installer Arch Linux sur un Raspberry Pi.
Cet article est-il utile ? Oui Non