Всем добра.
Есть у меня в арсенале одна машинка под управление FreeBSD, которая делает ежедневные бекапы самописными скриптами samba shares. размер данных растет, время бекапа увеличивается, в итоге получил ситуацию при которой бекап не успел сделаться в нерабочее время. Небольшой анализ выявил, что штатный gzip работает на одном ядре.
Беглое чтение интернет-поисковиков подсказали, что есть портированные архиваторы, которые умеет работать на нескольких процессорах (ядрах).
Свой выбор я остановил на pigz.
- Обновляем порты:
# portsnap fetch update
- Устанавливаем pizg
# cd /usr/ports/archivers/pigz/ && make install clean
Тестируем скорость:
- Со штатным gzip
time tar -cjf test_gz.tar.gz /usr/src/ 175.352u 14.007s 3:50.95 81.9% 71+173k 79974+1369io 0pf+0w
- С pizg
time tar --use-compress-program=/usr/local/bin/pigz -cjf test_pigz.tar.gz /usr/src/ 63.944u 14.120s 0:24.77 315.1% 88+301k 1+1761io 4pf+0w
Видим, что с использованием pigz выросла загрузка процессора с 81,9% до 315,1 и время работы команды уменьшилось.
По итогу первого дня использования, я получил сокращение более чем в 2 раза времени работы скрипта архивации.
Но немного увеличиваются получаемые архивы, для меня это не критично.
ll -h | grep "test_*" -rw-r--r-- 1 root wheel 171M 3 окт. 10:41 test_gz.tar.gz -rw-r--r-- 1 root wheel 220M 3 окт. 10:45 test_pigz.tar.gz
Видно, что архив полученный с помощью pigz имеет объем больше.
На практике получил такую картину:
ll -h /backup/sharename/ -rw-r--r-- 1 root wheel 51G 2 окт. 03:37 01.10.2017.tar.gz -rw-r--r-- 1 root wheel 53G 2 окт. 23:01 02.10.2017.tar.gz
Т.е. архив стал весить на 2Gb больше, но был сделан на 4:31 час раньше.
У pgzip есть опция сжатия от 0 до 9, на практике большого выигрыша я не получил:
time tar --use-compress-program="/usr/local/bin/pigz -9" -cjf test_pigz9.tar.gz /usr/src/ 171.065u 12.868s 0:48.53 378.9% 89+314k 1+1742io 0pf+0w ll -h | grep "test_*" -rw-r--r-- 1 root wheel 171M 3 окт. 10:41 test_gz.tar.gz -rw-r--r-- 1 root wheel 220M 3 окт. 10:45 test_pigz.tar.gz -rw-r--r-- 1 root wheel 218M 3 окт. 10:49 test_pigz9.tar.gz
Архив с опцией -9 стал весить меньше всего на 2 мегабайта.
Собственно все, надеюсь, что материал кому-нибудь пригодится.