Обычно я использую параметр -z rsync, чтобы включить сжатие при передаче файлов через Интернет. Однако, если я использую свою (простаивающую) гигабитную локальную сеть, нужно ли мне сжатие? Или без него будет быстрее? От каких факторов это зависит? (Я еще не делал никаких тестов).
В общем, что быстрее: сжатие + передача + распаковка или просто передача без сжатия?
Если ваше сетевое соединение медленное, очевидно, лучше сжать ... но как насчет того, чтобы все работало в гигабитной сети Ethernet?
Во время передачи rsync вы ограничены процессором или ваш канал переполнен.
Я работаю с этим довольно часто, перенося данные между серверами и во время невероятно долгой передачи данных ...
Короткий ответ - протестируйте с помощью своего конкретный данные ... Это действительно легко сделать. Попробуйте передать по локальной сети с выключенным сжатием, затем попробуйте с включенным сжатием ...
По моему опыту работы с производственными наборами данных в нескольких средах, на подключении GigE или выше, включение дросселированных передач с сжатием rsync до ~ 40 мегабайт в секунду (или 33% от теоретической максимальной скорости гигабитного канала).
Эта скорость также зависела от размера и количества передаваемых файлов (например, большое количество небольших файлов снижает общую пропускную способность rsync). Также имели значение подсистемы хранения отправителя и получателя.
Недавно я использовал модифицированный rsync для передачи по локальной сети. Используя Библиотека UDR с помощью rsync (разрешить передачу по UDP) и отключением сжатия и шифрования я могу получать rsync-передачи на проводной скорости со смешанными типами файлов, независимо от количества файлов.
Как сказал Зоредак, если ваша ссылка не насыщена, нет -z. Кроме того, вы можете использовать флаг bwlimit для управления длинными передачами.
Несколько деталей в дополнение к ответу Zoredache:
Использовать top
на машинах, чтобы проверить использование ЦП. Особенно на отправляющей машине. Использовать ssh
чтобы добраться до отправителя, если он удален.
Используйте rsync с --progress
вариант, если у вас достаточно больших файлов, чтобы он показывал значительную скорость. Если файлы в основном небольшие, это мало что скажет о скорости сети. В таком случае ...
Использовать nload
на одной из машин, чтобы увидеть скорость сети
А если сомневаетесь, не сжимайте.
Большинство больших файлов обычно уже сжаты (фильмы, изображения, программы установки и т. Д.), Поэтому попытки сжимать их больше - пустая трата времени.