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)