Должен ли я использовать сжатие 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

Другие вопросы по тегам