Cum se comprimă arhivele folosind toate nucleele procesorului cu Tar

Comment compresser des archives en utilisant tous les cœurs de processeur avec Tar

⌛ Reading Time: 5 minutes

Si vous avez déjà eu à compresser de gros volumes avec tar, vous saurez à quel point cela peut être pénible. Cela va souvent très lentement, et vous vous retrouvez à frapper 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.

Comprendre et installer les outils

Les trois principaux outils en question ici sont pigz, pbzip2 et pxz. Il existe des 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.

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 vais l’utiliser. Donc, je vais continuer et lancer cette commande avec le time commande à 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 %.

Tar Tous les noyaux Tar Xz
Tar All Cores Htop 1

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).

Tar All Cores Xz Time

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.

Utilisation d’outils de compression parallèle avec Tar

Vous pouvez soit dire à tar d’utiliser un programme de compression avec le --use-compression-program option, ou vous pouvez 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 mon htop lecture montrant tous les threads épinglés à 100 % d’utilisation à cause de pxz.

Tar Tous les noyaux Tar Pxz
Tar All Cores Htop 2

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 avez laissé votre pxz commande de 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.

Tar All Cores Temps Pxz

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.

Tar Tous les noyaux Tar Pxz 9
Tar All Cores Pxz 9 Temps
Comparaison de la compression Tar All Cores

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.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.