Passer de la compression gz à zstd pour les sauvegardes

zstd est assez courant maintenant et compresse mieux et est plus rapide que gz. Il vaut peut-être la peine de passer à cela pour les sauvegardes.

En considérant toutes les instances de discourse dans le monde, cela pourrait permettre d’économiser beaucoup sur le disque et le transfert.

Choosing Between gzip, Brotli and zStandard Compression | Paul Calvano.

4 « J'aime »

Je pense que c’est une bonne idée. Je vais ajouter le tag pr-welcome.

2 « J'aime »

Je serais curieux de connaître le rapport moyen entre les données compressibles et les données déjà compressées dans une sauvegarde Discourse[^1], et quelle quantité de données (en %) serait économisée en utilisant zstd.

[^1] Bien sûr, certains forums dépendent beaucoup des téléchargements d’images, et d’autres n’autorisent même pas les téléchargements de fichiers.

Ce n’est pas la même demande de fonctionnalité, mais elle concerne également la compression des sauvegardes, je poste donc ceci en parallèle :

Je ne serais pas surpris si le pourcentage était à peu près le même sur tous mes forums Discourse.

Occasionnellement, le processus de sauvegarde nous pose des problèmes de disponibilité en raison de la charge supplémentaire. J’ai donc effectué un petit test avec zstd aujourd’hui.

Voici mes résultats pour la compression du même fichier dump.sql de 73 Go avec gzip (niveau 4, comme dans la sauvegarde Discourse) et zstd (niveau par défaut 3, sur une échelle de 19) :

Taille de compression : 15,8 % plus petite (.zst représente 84 % de la taille de .gz)
Temps de compression (-T1) : 71 % plus rapide (29 % du temps de gzip)
Temps de compression (-T0) : 89 % plus rapide (11 % du temps de gzip)

Les résultats peuvent varier ; je n’ai pas répété les tests plusieurs fois. Ma propre machine (6 cœurs) effectuait d’autres tâches, etc., etc. — je n’ai pas cherché la précision. Néanmoins, je pense que les avantages sont clairs.

Je ne suis pas certain que l’option -T0 convienne nécessairement à tous, car il semble judicieux de laisser une marge de manœuvre pour Discourse lui-même, d’où l’exemple avec -T1 pour une comparaison plus équitable.

Cela ressemble à une situation gagnant-gagnant et aurait probablement un impact significatif sur l’infrastructure d’hébergement de Discourse également. Cela dit, je n’ai pas les compétences nécessaires pour créer une PR, je partage donc simplement ce que j’ai découvert.

2 « J'aime »

Je peux confirmer que le tar à l’intérieur du Docker prend en charge la compression --zstd.

Édition : Oups, non. Le tar la prend en charge, mais l’utilitaire ‘zstd’ manque. Il est disponible via apt-get install.

2 « J'aime »