1 min read

tar и zstd: как мы ускорили бэкапы в 4 раза

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 — наш стандарт для всех резервных копий.


📬 Свяжитесь с нами

Хотите внедрить это в своем бизнесе? Пишите нам!

Связаться с нами
Telegram
WhatsApp
Email