tar и zstd: как мы ускорили бэкапы в 4 раза
Ситуация
Недавно коллега пожаловался, что бэкапы базы стали занимать по три часа. Я вспомнил старую проблему, с которой сам сталкивался года два назад.
Тогда у нас был клиент с терабайтом логов. Сжатие xz давало отличный коэффициент, но время упаковки убивало.
Предыстория
В 1it.pro мы обслуживаем десятки проектов. Раньше стандартом был tar + gzip. Потом перешли на xz — ждали экономии места.
Но xz однопоточный. На больших объёмах он работал часами. А параллельный pigz не решал проблему сжатия.
Проблема
Бэкапы растягивались на полдня. Сжатие отличное, но время критично. Когда надо восстановить — ждать ещё дольше.
Операции начинали пересекаться с рабочим временем. Нагрузка на диск росла, снижалась производительность приложений.
Почему это важно
Простой сервера из-за долгого бэкапа — потеря денег. Клиенты не терпят.
Кроме того, частые полные бэкапы защищают от потери данных. Если процесс медленный, их делают реже — риск увеличивается.
Решение
Перешли на zstd. Команда простая:
tar -cf - /data | zstd -o backup.tar.zst
Флаг -T включает многопоточность. На сервере с 8 ядрами сжатие идёт в 4 раза быстрее, чем gzip.
zstd даёт сжатие почти как xz, но на порядок быстрее — идеальный баланс для бэкапов.
Вот что получили:
- 🚀 Скорость сжатия до 4 раз быстрее gzip
- 💾 Размер всего на 10–15% больше, чем xz
- 🔧 Многопоточность без дополнительных утилит
- ⚡ Распаковка тоже быстрая — восстановление не затягивается
Результат
Время сжатия упало в 4 раза. Размер архива увеличился незначительно.
Теперь полный бэкап терабайта занимает 40 минут вместо 3 часов. Клиенты довольны, нагрузка на сервер снизилась.
С тех пор tar + zstd — наш стандарт для всех резервных копий.
📬 Свяжитесь с нами
Хотите внедрить это в своем бизнесе? Пишите нам!
- 📧 Email: [email protected]
- 🌐 Сайт: 1it.pro
- 📝 Блог: blog.1it.pro
- ✈️ Telegram Global (EN): Admin_global
- ✈️ Telegram (RU): Admin