Назад | Перейти на главную страницу

rsync --compress-level: какие уровни сжатия можно использовать?

Rsync имеет аргументы командной строки для сжатия:

-z, --compress              compress file data during the transfer
    --compress-level=NUM    explicitly set compression level

Что значит --compress-level значит? Какие числа можно использовать как уровень?

это значения от 0 до 9. Где 1 - самый быстрый, 9 - самый сжатый. Помимо этого существует корреляция между rsync и zlib, где около rsync сообщает библиотеке zlib «использовать сжатие по умолчанию», в документации zlib говорится следующее:

Z_DEFAULT_COMPRESSION запрашивает компромисс по умолчанию между скоростью и сжатием (в настоящее время эквивалентен уровню 6).

Используемая среда состояла из двух контейнеров докеров, используемых с MACVLAN + некоторый шумовой трафик (что дает ошибку около ± 1%). FileX - в моем случае - является двоичным.

Итак, ниже приведены результаты использования tarred файлов rsync по сравнению с rsync со сжатием (опция -z) неупакованных файлов.

      1. File tarred + rsync without compression (rsync -axvPAH fileX.tar destination:/path)

    File size is 56933 bits (fileX.tar)
    Transfer difference is 4735665-4673346=62319 bits

      2. File tarred + rsync with default compression (rsync -axvPAH -z fileX destination:/path)

    File size is 56933 (fileX.tar)
    Transfer difference is 4933845-4871608=62237

      3. File tarred + rsync with maximum compression (rsync -axvPAH -z --compress-level=9 fileX.tar destination:/path)

    File size is 56933 bits (fileX.tar)
    Transfer difference is 4870664-4808387=62277

      4. File untarred + rsync with default compression (rsync -axvPAH -z fileX destination:/path)

    File size is 237525 bits (fileX)
    Transfer difference is 4669946-4607637=62309 bits

      5. File untarred + rsync with maximum compression (rsync -axvPAH -z --compress-level=9 fileX destination:/path)

    File size is 237525 bits (fileX)
    Transfer difference is 4806735-4744764=61971 bits

      6. File untarred + rsync without compression (makes no sense since it’s the most bandwidth consuming one)