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

Как избежать нагрузки в rsync с помощью ssh?

У меня большой объем данных (300 ГБ) на сервере Linux. Теперь я хочу перейти на другой сервер Linux, используя rsync через ssh. Когда я передаю данные, это создает огромную нагрузку на сервер. Могу ли я узнать, как избежать нагрузки на сервер при передаче огромного количества данных по ssh?

Используйте более слабый шифр ssh (например, arcfour), например:

rsync -av source --rsh="ssh -c arcfour" foo@bar:/destination

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

Я нашел решение, чтобы избежать нагрузки на сервер во время файла между удаленным и локальным сервером, включив команду ionice и nice в rsync

ionice - get/set program io scheduling class and priority

nice - run a program with modified scheduling priority

#rsync -r -az --rsync-path="ionice -c 3 nice rsync" -e "ssh -p 8363" username@ip-address:/source-file  /destination

Или, если вас интересует нагрузка на ЦП и у вас современный ЦП с инструкциями AES (хотя это кажется маловероятным из вашего описания), вы можете использовать Intel Accelerator Engine. Есть README внутри с информацией о том, как его настроить. Также может быть какой-то способ настройки, связанный с дистрибутивом.

Чтобы узнать, есть ли у вас «современный» процессор, используйте grep aes /proc/cpuinfo.

Вы можете дополнить его Rsync --whole-file

Rsync по умолчанию для локальных копий просто копирует файл целиком, но для уменьшения сетевого трафика удаленные синхронизации различаются, что значительно увеличивает нагрузку на ЦП.

rsync -av --whole-file -e ssh {source} {destination}

Источник