TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #345 12K
Открытие костыльного цеха

Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.

Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.

Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.

Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.

Ну раз так. Расчехляем свиней. PIGZ!

PIGZ (Parallel Implementation of GZIP) - это утилита для сжатия файлов, которая использует параллельные вычисления для ускорения процесса сжатия данных.


Ставится из репы: apt install pigz, а где-то уже сразу установлен.

Давай затестим. Создаем 10ти гигабайтный файл.

truncate -s 10G bashdays


Запускаем тесты:

time gzip -k -c bashdays > /dev/null

real 0m46.590s


time pigz -k -c bashdays > /dev/null

real 0m8.535s


Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.

Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!

✔️ Теперь pigz нужно подружить с tar

С этим все просто, через пайп:

tar cf - bashdays | pigz -k -c > bashdays.tar.gz


Либо как вариант через ключ --use-compress-program

tar --use-compress-program="pigz --best --recursive" -cf bashdays.tar.gz bashdays


Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:

tar cf - bashdays | pigz -k -c | pv > bashdays.tar.gz


Тут используется утилита pv, про нее писал в этом посте.

Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.

Увидимся! Пойду адаптировать под свои бэкапы.

tags: #linux #utils

@ВАSНDАYS | BАSHDАYS.CОM
More from @bashdays
  1. Sep 30, 2026↗️ Для всех, кто строит 15 октября Cloud․ru соберет инженеров, которые строят и эксплуатир…
  2. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  3. Sep 24, 2026Post #1565
  4. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  5. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  6. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →