Должен ли я использовать сжатие rsync по гигабитной локальной сети?
Обычно я использую опцию rsync -z для включения сжатия при передаче файлов через Интернет. Однако, если я нахожусь в своей собственной (неактивной) гигабитной локальной сети, мне все еще нужно сжатие? Или это будет быстрее без него? От каких факторов это зависит? (Я еще не сделал никаких тестов).
В общем, быстрее ли: сжимать + переносить + распаковывать или просто передавать несжатый?
Если ваше сетевое соединение медленное, лучше сжать его... но как насчет того, чтобы все работало в гигабитной сети Ethernet?
5 ответов
Во время передачи по rsync вы связаны с процессором или ваша ссылка насыщена.
- Если ваша ссылка насыщена, но ваш процессор простаивает, то сожмите.
- Если ваш процессор увеличен, а ссылка отсутствует, не сжимайте.
Я работаю над этим довольно часто, перемещая данные между серверами и во время невероятно длительных передач данных...
Короткий ответ - проверить ваши конкретные данные... Это действительно легко сделать. Попробуйте передачу по локальной сети с выключенным сжатием, затем попробуйте с включенным сжатием...
По моему опыту с производственными наборами данных в нескольких средах, при подключении GigE или выше, включение сжатия rsync регулировало скорость передачи до ~40 мегабайт / секунду (или 33% от теоретической максимальной скорости гигабитного канала).
Эта скорость варьировалась в зависимости от размера и количества передаваемых файлов (например, большое количество небольших файлов снижало общую пропускную способность rsync). Подсистемы хранения отправителя и получателей также имеют значение.
Недавно я использовал модифицированный rsync для передачи по локальной сети. Используя библиотеку UDR с rsync (разрешить передачу UDP) и отключив сжатие и шифрование, я могу получать передачу rsync со скоростью соединения со смешанными типами файлов, независимо от количества файлов.
Как сказал Zoredache, если ваша ссылка не насыщена нет -z. Кроме того, что-то еще, что вы можете использовать для управления длинными передачами, это флаг bwlimit.
Несколько деталей, чтобы дополнить ответ от Zoredache:
использование
top
на машинах, чтобы проверить использование процессора. Особенно на отправляющей машине. использованиеssh
добраться до отправителя, если он удаленный.Используйте rsync с
--progress
вариант, если у вас достаточно больших файлов, чтобы показать значимые скорости. Если файлы в основном небольшие, это может не сказать вам много о скорости сети. В таком случае...использование
nload
на одной из машин, чтобы увидеть скорость сети
И если сомневаетесь, не сжимайте.
Большинство больших файлов обычно уже сжаты (фильмы, картинки, установщики и т. Д.), Поэтому попытка сжать их еще больше - пустая трата времени.
Вот связанный вопрос «Ускоряет ли опция сжатия -z с помощью rsync резервное копирование»: https://unix.stackexchange.com/questions/188737/does-compression-option-z-with-rsync-speed-up-backup