GNU/Linux >> Tutoriels Linux >  >> Linux

Il est temps de compresser des fichiers très volumineux (100 G)

Vous pouvez changer la vitesse de gzip en utilisant --fast --best ou -# où # est un nombre compris entre 1 et 9 (1 est le plus rapide mais moins compressé, 9 est le plus lent mais plus compressé). Par défaut gzipruns au niveau 6.


La raison pour laquelle tar prend si peu de temps par rapport à gzip est qu'il y a très peu de surcharge de calcul pour copier vos fichiers dans un seul fichier (ce qu'il fait). gzip, d'autre part, utilise en fait des algorithmes de compression pour réduire le fichier tar.

Le problème est que gzip est limité (comme vous l'avez découvert) à un seul thread.

Entrez pigz, qui peut utiliser plusieurs threads pour effectuer la compression. Voici un exemple d'utilisation :

tar -c --use-compress-program=pigz -f tar.file dir_to_zip

Il y a un joli résumé succinct de l'option --use-compress-program sur un site frère.


Il semble que j'utilise un seul processeur à environ 100 %.

Cela implique qu'il n'y a pas de problème de performances d'E/S mais que la compression n'utilise qu'un seul thread (ce qui sera le cas avec gzip).

Si vous parvenez à obtenir l'accès/l'accord nécessaire pour installer d'autres outils, 7zip prend également en charge plusieurs threads pour tirer parti des processeurs multicœurs, bien que je ne sois pas sûr que cela s'étende au format gzip ainsi qu'au sien.

Si vous êtes obligé d'utiliser uniquement gzip pour le moment et que vous avez plusieurs fichiers à compresser, vous pouvez essayer de les compresser individuellement - de cette façon, vous utiliserez davantage ce processeur multicœur en exécutant plusieurs processus en parallèle. Attention cependant à ne pas en faire trop, car dès que vous vous approchez de la capacité de votre sous-système d'E/S, les performances chuteront précipitamment (à un niveau inférieur à celui si vous utilisiez un processus/thread) car la latence des mouvements de la tête devient importante. goulot d'étranglement.


Linux
  1. Comment compresser plusieurs fichiers sous Linux

  2. Utiliser rsync pour synchroniser les fichiers

  3. Comment compresser et extraire des fichiers et des répertoires sous Linux à l'aide de gzip et bzip2

  4. Décompressez tous les fichiers dans un répertoire

  5. Compter les lignes dans les fichiers volumineux

Comment renommer des fichiers en utilisant la ligne de commande sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment compresser des fichiers volumineux (100 Go +) plus rapidement sous Linux

Transférer des fichiers à l'aide de WinSCP

Comment compresser un fichier sous Linux