Иногда процесс резервного копирования вызывает у нас проблемы с доступностью из-за дополнительной нагрузки. Поэтому сегодня я провёл быстрый эксперимент с 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, поэтому просто делюсь тем, что обнаружил.