Migrar de compresión gz a zstd para copias de seguridad

zstd es bastante común ahora y comprime mejor y es más rápido que gz. Quizás valga la pena cambiar a esto para las copias de seguridad.

Considerando todas las instancias de Discourse en el mundo, esto podría suponer un gran ahorro en disco y transferencia.

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

4 Me gusta

Creo que esta es una buena idea. Poniendo una etiqueta pr-welcome a esto.

2 Me gusta

Tendría curiosidad por saber la relación de peso promedio entre los datos comprimibles y los ya comprimidos en una copia de seguridad de Discourse[1], y cuántos datos (en %) se ahorrarían usando zstd.

No es la misma solicitud de función, pero también se trata de la compresión de copias de seguridad, así que estoy publicando esto aquí:

No me sorprendería si el porcentaje fuera aproximadamente el mismo en todos mis foros de Discourse.


  1. Por supuesto, algunos foros dependen mucho de las cargas de imágenes, y algunos ni siquiera permitirán cargas de archivos. ↩︎

Ocasionalmente, el proceso de copia de seguridad nos causa algunos problemas de disponibilidad debido a la carga adicional. Así que hoy hice una prueba rápida con zstd.

Estos fueron mis resultados al comprimir el mismo archivo dump.sql de 73 GiB con gzip (nivel 4, como en la copia de seguridad de Discourse) y zstd (nivel predeterminado 3, de 19):

Tamaño de compresión: 15,8 % más pequeño (.zst fue el 84 % del tamaño de .gz)
Tiempo de compresión (-T1): 71 % más rápido (29 % del tiempo de gzip)
Tiempo de compresión (-T0): 89 % más rápido (11 % del tiempo de gzip)

Los resultados pueden variar; no lo ejecuté varias veces, mi propia máquina (6 núcleos) también estaba haciendo otras cosas, etc., etc. No busqué precisión. Aun así, creo que los beneficios son claros.

No estoy seguro de que -T0 sea necesariamente una buena opción para todos, ya que dejar algo de margen para el propio Discourse parece una buena idea, de ahí la muestra con -T1 para una comparación más justa.

Se siente como un ganar-ganar y probablemente también tendría un impacto significativo en la infraestructura de alojamiento de Discourse. Dicho esto, no tengo las habilidades para hacer un PR, así que solo comparto lo que encontré.

2 Me gusta

Puedo confirmar que el tar dentro del Docker sí soporta la compresión --zstd.

Edición: Ups, no. El tar sí lo soporta, pero falta la utilidad ‘zstd’. Está disponible para instalar con apt-get.

2 Me gusta