Назад | Перейти на главную страницу

Следует ли использовать сжатие rsync в гигабитной локальной сети?

Обычно я использую параметр -z rsync, чтобы включить сжатие при передаче файлов через Интернет. Однако, если я использую свою (простаивающую) гигабитную локальную сеть, нужно ли мне сжатие? Или без него будет быстрее? От каких факторов это зависит? (Я еще не делал никаких тестов).

В общем, что быстрее: сжатие + передача + распаковка или просто передача без сжатия?

Если ваше сетевое соединение медленное, очевидно, лучше сжать ... но как насчет того, чтобы все работало в гигабитной сети Ethernet?

Во время передачи rsync вы ограничены процессором или ваш канал переполнен.

  • Если ваша ссылка переполнена, но ваш процессор простаивает, сжимайте.
  • Если ваш процессор загружен, а ваша ссылка нет, не сжимайте.

Я работаю с этим довольно часто, перенося данные между серверами и во время невероятно долгой передачи данных ...

Короткий ответ - протестируйте с помощью своего конкретный данные ... Это действительно легко сделать. Попробуйте передать по локальной сети с выключенным сжатием, затем попробуйте с включенным сжатием ...

По моему опыту работы с производственными наборами данных в нескольких средах, на подключении GigE или выше, включение дросселированных передач с сжатием rsync до ~ 40 мегабайт в секунду (или 33% от теоретической максимальной скорости гигабитного канала).

Эта скорость также зависела от размера и количества передаваемых файлов (например, большое количество небольших файлов снижает общую пропускную способность rsync). Также имели значение подсистемы хранения отправителя и получателя.

Недавно я использовал модифицированный rsync для передачи по локальной сети. Используя Библиотека UDR с помощью rsync (разрешить передачу по UDP) и отключением сжатия и шифрования я могу получать rsync-передачи на проводной скорости со смешанными типами файлов, независимо от количества файлов.

Как сказал Зоредак, если ваша ссылка не насыщена, нет -z. Кроме того, вы можете использовать флаг bwlimit для управления длинными передачами.

Несколько деталей в дополнение к ответу Zoredache:

  • Использовать top на машинах, чтобы проверить использование ЦП. Особенно на отправляющей машине. Использовать ssh чтобы добраться до отправителя, если он удален.

  • Используйте rsync с --progress вариант, если у вас достаточно больших файлов, чтобы он показывал значительную скорость. Если файлы в основном небольшие, это мало что скажет о скорости сети. В таком случае ...

  • Использовать nload на одной из машин, чтобы увидеть скорость сети

А если сомневаетесь, не сжимайте.

Большинство больших файлов обычно уже сжаты (фильмы, изображения, программы установки и т. Д.), Поэтому попытки сжимать их больше - пустая трата времени.