Est-il possible d'accélérer le gzip
processus?
j'utilise
mysqldump "$database_name" | gzip > $BACKUP_DIR/$database_name.sql.gz
pour sauvegarder une base de données dans un répertoire $BACKUP_DIR
,.
la page de manuel dit:
- # --fast --best
Réglez la vitesse de compression en utilisant le chiffre spécifié #, où -1 ou --fast indique la méthode de compression la plus rapide (moins de compression) et -9 ou --best indique la méthode de compression la plus lente ( meilleure compression). Le niveau de compression par défaut est -6 (c'est-à-dire biaisé vers une compression élevée au détriment de la vitesse).
- Quelle serait son efficacité
--fast
? - Est-ce que cela réduit efficacement l'utilisation du processeur sur un ordinateur moderne?
Mes résultats de test
Je n'ai remarqué aucune accélération:
- 7 min, 47 secondes (avec rapport par défaut
-6
) - 8 min, 36 secondes (avec rapport
--fast
(= 9))
Il semble donc qu'il faut encore plus de temps pour utiliser la compression rapide?
Seule une compression plus élevée la ralentit vraiment:
- 11 min, 57 secondes (avec rapport
--best
(= 1))
Après avoir obtenu l'idée avec, lzop
j'ai testé cela aussi et c'est vraiment plus rapide:
- 6 min, 14 secondes avec
lzop -1 -f -o $BACKUP_DIR/$database_name.sql.lzo
la source
gzip -1
n'est pas assez rapide, utilisezlzop
lz4
ce qui est encore plus rapide voir ce benchmark . Mais il semble que lzop et lz4 aient besoin de beaucoup plus de mémoire. y aura-t-il un problème sur ma mémoire RAM simple cœur de 1 Go que lz4 utilise 30 fois plus de mémoire en compression que gzip lorsque je compresse certaines grandes bases de données?Réponses:
Si vous avez une machine multicœur, pigz est beaucoup plus rapide que gzip traditionnel.
Pigz peut être utilisé en remplacement de gzip. Notez que seule la compression peut être parallélisée, pas la décompression.
En utilisant pigz, la ligne de commande devient
la source
pigz
augmente l'utilisation du processeur mais réduit le temps d'horloge qu'il prend sur les multi-processeursDe
man gzip
:la source
Si vous avez besoin qu'il soit rapide en raison de problèmes de verrouillage de la base de données et que vous disposez d'un disque suffisamment rapide / volumineux pour conserver temporairement les données non compressées, vous pouvez envisager d'utiliser cette méthode à la place:
C'est-à-dire stocker la sauvegarde en premier (ce qui est plus rapide que le compresser si le disque est rapide et le CPU est lent) et ensuite le compresser se produit en arrière-plan.
Cela peut également vous permettre d'utiliser un meilleur algorithme de compression, car il n'a plus d'importance (directement) combien de temps prend la compression.
la source