tl; dr По медленным ссылкам передачи, сжимать, иначе нет. Ниже приведен тест скорости сжатия, ссылка на инструмент преобразования пропускной способности и некоторая информация.
Использование сжатия с rsync
ускорит работу только в том случае, если промежуточная линия связи «достаточно медленная», т. Е. Если машина на одном конце способна создать поток сжатых данных достаточно быстро, чтобы насытить канал связи.
Итак, какова самая медленная связь, на которой я должен использовать сжатие, чтобы получить что-нибудь?
Ниже приведен очень ненаучный тест, который покажет, как быстро gzip
можно создавать данные, и что это означает для того, следует ли вообще сжимать объемные передачи в сети.
Входные данные сильно изменят результаты теста . Я использую несжатый (!) Обычный файл на моем компьютере, который может представлять тип данных, которые я обычно передаю по сети. Использование /dev/zero
(создание неограниченных нулей) будет вводить в заблуждение, поскольку поток нулей будет очень легко сжать, а использование /dev/random
будет вводить в заблуждение по противоположной причине. Поэтому вместо этого я использую tar-файл своего $HOME/local
каталога, который содержит программное обеспечение, которое я установил в моем $HOME
. Файл сам по себе не сжат, но содержит смесь двоичных файлов, небольших сжатых файлов и исходных / текстовых файлов, и я бы сжал его с настройками по умолчанию, так как gzip
он уменьшится на 67% с 64 МБ до 22 МБ.
$ gzip -c local.tar | dd of=/dev/null
43092+4 records in
43093+1 records out
22063854 bytes transferred in 2.819 secs (7825741 bytes/sec)
Я делаю это несколько раз, чтобы понять, каково среднее значение, и оно достигает 7800000 байт / с.
Затем я использую калькулятор пропускной способности сети, чтобы увидеть, во что это конвертируется. В данном конкретном случае он оказывается чуть менее пропускной способности проводной линии связи «100 Мбит Ethernet», чуть быстрее, чем интернет-восходящая линия связи «VDSL Download», немного быстрее, чем беспроводная связь «802.11 [a / g]», и где-то еще. между «Bluetooth v3.0» (медленнее) и «USB 2.0» (быстрее).
Это означает, что если я использую сжатие поверх чего-либо более быстрого , сжатие, скорее всего, замедлит передачу файла.
rsync
не может быть с помощью точных же библиотек , как gzip
сделать сжатие, но выше даст вам немного намека , по крайней мере.
rsync
хотя, как вы знаете, он делает больше, чем просто сжатие, и реальное увеличение скорости происходит только за счет передачи [битов] файлов, которые изменились.
По моему собственному опыту, использование сжатия с использованием rsync
стало менее и менее выгодным за последние 10 лет или около того, так как пропускная способность сетей увеличилась (где я нахожусь).
Для создания инкрементных резервных копий я бы определенно рекомендовал исследовать эту --link-dest
опцию (это не имеет ничего общего с тем, что передается, только с тем, как вещи хранятся в целевом объекте). Кроме того, если вы делаете это по SSH, не используйте сжатие, если ваше SSH-соединение уже сжато, и сжимайте только SSH-соединения (туннели и т. Д.) По медленным каналам по тем же причинам, что и выше.