Миграция с сжатия gz на zstd для резервных копий

zstd сейчас довольно распространён, сжимает лучше и работает быстрее, чем gz. Возможно, стоит перейти на него для резервных копий.

Если учесть все экземпляры Discourse по всему миру, это может значительно сэкономить место на диске и трафик.

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

4 лайка

Я думаю, что это на самом деле хорошая идея. Добавлю тег pr-welcome к этому.

2 лайка

Мне было бы интересно узнать среднее соотношение размеров сжимаемых и уже сжатых данных в резервной копии Discourse[1], а также какой процент данных можно сэкономить, используя zstd.

Это не тот же запрос на новую функцию, но он тоже касается сжатия резервных копий, поэтому я пересылаю его сюда:

Меня бы не удивило, если бы процент был примерно таким же на всех моих форумах Discourse.


  1. Конечно, некоторые форумы сильно зависят от загрузки изображений, а некоторые вообще не позволяют загружать файлы. ↩︎

Иногда процесс резервного копирования вызывает у нас проблемы с доступностью из-за дополнительной нагрузки. Поэтому сегодня я провёл быстрый эксперимент с zstd.

Вот результаты сжатия одного и того же файла dump.sql объёмом 73 ГиБ с помощью gzip (уровень 4, как в резервных копиях Discourse) и zstd (уровень по умолчанию 3 из 19):

Размер после сжатия: на 15,8% меньше (.zst составляет 84% от размера .gz)
Время сжатия (-T1): на 71% быстрее (29% от времени gzip)
Время сжатия (-T0): на 89% быстрее (11% от времени gzip)

Результаты могут различаться: я не запускал тесты несколько раз, на моём собственном компьютере (6 ядер) в это время выполнялись и другие задачи и так далее — точность не была приоритетом. Тем не менее, преимущества, на мой взгляд, очевидны.

Не уверен, что параметр -T0 обязательно подойдёт всем, так как оставлять запас ресурсов для самого Discourse кажется разумным, поэтому для более честного сравнения я привёл пример с -T1.

Кажется, это беспроигрышный вариант, который, вероятно, также окажет значительное влияние на инфраструктуру хостинга Discourse. При этом у меня нет навыков для создания PR, поэтому просто делюсь тем, что обнаружил.

2 лайка

Можно подтвердить, что tar внутри Docker поддерживает сжатие --zstd.

Редактирование: ой, нет. Сам tar поддерживает это, но утилита ‘zstd’ отсутствует. Её можно установить через apt-get install.

2 лайка