105 votes

Quelles sont les meilleures options à utiliser lors de la compression de fichiers avec 7 Zip ?

Je dois souvent rassembler des fichiers journaux et les télécharger vers un serveur central (appartenant à une autre société). Le serveur central a une limite de taille du fichier, j'essaie donc de créer le plus petit fichier possible qui soit toujours au format zip.

Quels sont les meilleurs paramètres à utiliser pour compresser un fichier texte au format zip lorsque mon seul besoin est une petite taille de fichier ?

7zip Options

J'ai fait ce qui était évident et choisi l'ultra compression, et j'ai remarqué que LZMA fait un meilleur travail que deflate, mais il y a beaucoup trop d'autres permutations d'options pour que je puisse toutes les tester.

101voto

kenorb Points 22006

Pour créer le plus petit fichier ZIP standard que 7-Zip peut créer, essayez :

7z a -mm=Deflate -mfb=258 -mpass=15 -r foo.zip C:\Path\To\Files\*

Source : Comment puis-je obtenir la meilleure compression ZIP standard ?

Sinon, si vous ne vous souciez pas de la norme ZIP, utilisez les paramètres ultra suivants :

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1

Qui sont :

-t7z   7z archive

-m0=lzma
       lzma method

-mx=9  level of compression = 9 (Ultra)

-mfb=64
       number of fast bytes for LZMA = 64
-md=32m
       dictionary size = 32 megabytes

-ms=on solid archive = on

36voto

user1051003 Points 1071

Après de nombreuses expérimentations, des recherches dans la documentation détaillée de 7zip, et la lecture de certains codes sources de 7z concernant les paramètres avancés de LZMA2, voici une meilleure méthode ci-dessous. Elle a permis de réduire certains fichiers de test de 1 Go dans le monde réel. plus de 2 à 4 fois meilleure que les solutions précédemment acceptées publié ici ou même dans la page de manuel de 7z.

7z a -t7z -mx=9 -mfb=273 -ms -md=31 -myx=9 -mtm=- -mmt -mmtf -md=1536m -mmf=bt3 -mmc=10000 -mpb=0 -mlc=0 archive.7z inputfileordir

La compression LZMA2 est supposée ici, mais vous pourriez obtenir des performances encore meilleures dans 7zip en passant des options LZMA2 avancées comme -m0=LZMA2:27 ou -m0=LZMA2:d25 ou un tableau de paramètres comme

-m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1

De tels paramètres ne semblaient pas être respectés par les versions de 7z que j'ai testées, mais vous pourriez vouloir explorer davantage ou patcher le code 7z pour les analyser correctement. Ou peut-être que c'est censé fonctionner et que c'est juste cassé dans les builds qui ont été testés.

19voto

Umber Ferrule Points 3349

Si vous pouvez utiliser le format .7z plutôt que le simple .zip, j'utiliserais simplement PPMD avec les options suivantes et laissez tout le reste comme défini par le niveau de compression :

  • Format d'archives : 7z
  • Méthode de compression : PPMD
  • Niveau de compression : Ultra

Je compresse régulièrement des journaux de serveurs/textes (60MB+) en utilisant ces options et ils ont généralement une taille de 1-2% de la taille originale.

13voto

harrymc Points 394411

J'ai décidé de faire quelques expériences pour trouver de manière empirique le paramètres de compression optimaux.

L'outil que j'ai utilisé est 7-ZIP finetuner . Cet outil recherche les paramètres optimaux en répétant simplement la compression avec des paramètres variables. avec des paramètres variables, à la recherche de la combinaison optimale. Une exécution pour un seul fichier peut parfois prendre plus d'une heure, même sur un ordinateur rapide.

Les paramètres qu'il essaie sont :

LC : number of Literal Context bits
LP : number of Literal Pos bits
PB : number of Pos Bits
YX : level of file analysis
FB : number of Fast Bytes

J'ai laissé les paramètres par défaut de la taille du dictionnaire comme 512 MB et taille de bloc solide On. L'outil utilise la méthode LZMA.

Les meilleures combinaisons de paramètres sur plusieurs types de dossiers étaient les suivantes :

enter image description here

Je note que les meilleures valeurs ne sont pas constantes, même pour les dossiers du même type.

Conclusion : Il n'y a pas de meilleures options car chaque fichier peut avoir son propre meilleure combinaison. On peut conduire tous les paramètres jusqu'à leurs limites, mais une amélioration n'est pas du tout garantie.

La combinaison la plus courante semble être :

LC : 8
LP : 0
PB : 1
YX : 5
FB : 273

Quelques références à 7-Zip :

8voto

SULIMa Points 71

Je compare pour db.fdb 1,2 GB (1236598784 B) dans Ubuntu server 14.04.03 avec p7zip [64] 9.20 sur VM :

1. 7z a -mx=9 1.7z db.fdb
2. 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on 2.7z db.fdb
3. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on 3.7z db.fdb
4. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on -pass=15 4.7z db.fdb
5. 7z a -mx=9 -mmt=on 5.7z db.fdb
6. 7z a -t7z -m0=lzma -mx=9 -mfb=258 -md=32m -ms=on -mmt=on 6.7z db.fdb

et avoir ce résultat :

1.7z 96 MB (100108731 B) with 6' 25"
2.7z 95 MB ( 99520375 B) with 5' 18"
3.7z 93 MB ( 97512311 B) with 9' 19"
4.7z 93 MB ( 97512345 B) with 9' 40"
5.7z 96 MB (100108731 B) with 5' 26"
6.7z 93 MB ( 97512311 B) with 9' 09"

Je pense que la deuxième méthode fonctionne bien = (presque) la meilleure compression avec le meilleur temps. Mais pour une meilleure "vue" et facile à retenir, c'est la première méthode - avec de petits fichiers et pas de point de compression maximale. Entre les méthodes 2 et 3, nous n'obtenons pas de 7z plus petits mais nous payons presque deux fois plus de temps pour la compression. Chacun décide à sa façon.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X