Migrare dalla compressione gz a zstd per i backup

zstd è abbastanza comune ora e comprime meglio ed è più veloce di gz. Forse vale la pena cambiarlo per i backup.

Considerando tutte le istanze di discourse in tutto il mondo, questo potrebbe essere un grande risparmio in termini di disco e trasferimento.

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

4 Mi Piace

Penso che questa sia in realtà una buona idea. Metto un tag pr-welcome su questo.

2 Mi Piace

Sarei curioso di conoscere il rapporto medio di peso tra dati comprimibili e dati già compressi in un backup di Discourse[1], e quanta dati (in %) verrebbe risparmiata utilizzando zstd.

Non è la stessa richiesta di funzionalità, ma riguarda anche la compressione dei backup, quindi sto ricondividendo questo:

Non mi sorprenderei se la percentuale fosse all’incirca la stessa su tutti i miei forum Discourse.


  1. Naturalmente, alcuni forum si basano molto sul caricamento di immagini, e alcuni non consentono nemmeno il caricamento di file ↩︎

Occasionalmente il processo di backup ci causa problemi di disponibilità a causa del carico aggiuntivo. Quindi oggi ho fatto una rapida sperimentazione con zstd.

Questi sono i risultati della compressione dello stesso file dump.sql da 73 GiB con gzip (livello 4, come nel backup di Discourse) e zstd (livello predefinito 3, su 19):

Dimensione dopo compressione: 15,8% più piccola (.zst era l’84% della dimensione di .gz)
Tempo di compressione (-T1): 71% più veloce (29% del tempo di gzip)
Tempo di compressione (-T0): 89% più veloce (11% del tempo di gzip)

I risultati possono variare da caso a caso: non ho eseguito più prove, la mia macchina (6 core) stava facendo anche altre cose, ecc., ecc. — non ho cercato la massima precisione. Tuttavia, ritengo che i vantaggi siano evidenti.

Non sono sicuro che -T0 sia necessariamente la scelta migliore per tutti, dato che lasciare un po’ di margine per lo stesso Discourse sembra una buona idea; ecco perché ho incluso il campione con -T1 per un confronto più equo.

Sembra una situazione vincente per tutti e probabilmente avrebbe anche un impatto significativo sull’infrastruttura di hosting di Discourse. Detto questo, non ho le competenze per preparare una PR, quindi mi limito a condividere ciò che ho scoperto.

2 Mi Piace

Posso confermare che il tar all’interno del Docker supporta la compressione --zstd.

Modifica: ops, no. Il tar lo supporta, ma manca l’utilità ‘zstd’. È disponibile tramite apt-get install.

2 Mi Piace