NOTE IMPORTANTE : La compression n'est PAS l'objectif, c'est l'archivage/la mise en forme (regroupement de tous les fichiers dans une seule archive) qui est l'objectif.
Je souhaite sauvegarder un répertoire unique, qui contient des centaines de sous-répertoires et des millions de petits fichiers (< 800 KB). Lorsque j'utilise rsync
pour copier ces fichiers d'une machine vers une autre machine distante, j'ai remarqué que la vitesse de transfert est péniblement faible, seulement de l'ordre de 1 MB/sec, alors que lorsque je copie des fichiers volumineux (par exemple 500 GB) le taux de transfert est en fait de l'ordre de 120 MB/sec. La connexion réseau n'est donc absolument pas en cause.
Dans ce cas, déplacer seulement 200 Go de petits fichiers m'a pris environ 40 heures. J'envisage donc de compresser l'ensemble du répertoire contenant ces fichiers, puis de transférer l'archive compressée vers la machine distante, avant de la décompresser sur cette dernière. Je ne m'attends pas à ce que cette approche réduise 40 heures à 5 heures, mais je pense qu'elle prendrait certainement moins de 40 heures
J'ai accès à un cluster avec 14 cœurs de processeur (56 threads -- Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz) et 128 Go de RAM. La puissance du CPU/RAM n'est donc pas un problème.
Mais quel est le moyen le plus rapide et le plus efficace de créer une archive unique à partir d'un grand nombre de fichiers ? Pour l'instant, je ne connais que ces approches :
- traditionnelle
tar.gz
approche 7zip
pigz
(gzip parallèle - https://zlib.net/pigz/ )
Cependant, je ne sais pas lequel est le plus rapide et comment les paramètres doivent être réglés pour atteindre la vitesse maximale (par exemple, est-il préférable d'utiliser tous les cœurs du processeur avec 7zip ou un seul ?)
N.B. Taille du fichier et le taux de compression n'ont PAS d'importance du tout. Je n'essaie PAS du tout d'économiser de l'espace. J'essaie seulement de créer une seule archive à partir d'un grand nombre de fichiers afin que le taux de transfert soit de 120 MB/s au lieu de 1 MB/s.
RELIEF : Comment rendre 7-Zip plus rapide