Je dois souvent rassembler des fichiers journaux et les télécharger sur un serveur central (appartenant à une autre société). Le serveur central a une taille limite de fichier. J'essaie donc de créer le plus petit fichier possible au format Zip.
Quels sont les meilleurs paramètres à utiliser lors de la compression d'un fichier texte au format Zip lorsque mon seul besoin est une petite taille de fichier?
J'ai fait la compression évidente et j'ai choisi l'ultra compression, et j'ai remarqué que LZMA fait un meilleur travail que le dégonflement, mais il y a beaucoup trop de variantes pour que je puisse toutes les tester.
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
Si vous pouvez utiliser le format .7z plutôt que simplement le .Zip, je voudrais simplement utiliserPPMDavec les options suivantes et laisser tout le reste tel que défini par le niveau de compression:
Je compresse régulièrement les journaux de serveur/texte (60 Mo +) en utilisant ces options et ils sortent généralement à 1-2% de la taille originale.
Je compare pour db.fdb 1,2 Go (1236598784 B) dans le serveur Ubuntu 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 que des résultats:
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) mieux compresser avec le meilleur temps. Mais pour une meilleure "vue" et facile à retenir est la première méthode - avec de petits fichiers et aucun point de compression maximale. Entre la méthode 2 et la méthode 3, nous n'obtenons pas un format 7z plus petit, mais nous passons près de deux fois plus de temps pour la compression. Quelqu'un décide avec le sien.
Définissez le champ "découper en volume, octets" sur la taille de fichier maximale autorisée du serveur (en octets, je pense, même s'il semble accepter les abréviations courantes telles que "KB" et "MB"). Si le fichier Zip dépasse cette taille, 7-Zip le scinde automatiquement en plusieurs fichiers, tels que integration_serviceLog.Zip.001 , integration_serviceLog.Zip.002 , etc. (Retour à l'époque, PK Zip utilisé ceci pour étendre les fichiers Zip sur plusieurs disquettes.) Vous aurez besoin de tous les fichiers présents pour les décompresser. Utilisez cela au lieu de vous soucier des meilleurs paramètres de compression absolus à utiliser pour un ensemble de fichiers particulier, car ce qui est le mieux pour un fichier peut être différent pour un autre fichier, et vous ne voulez pas avoir à passer par là à chaque fois que vous en avez besoin. copier les journaux.