Мне нужно перенести большой каталог на другой сервер.
Моя проблема в том, что я не могу использовать всю доступную полосу пропускания, потому что один параллельный поток TCP не работает так быстро.
В основном функциональность, которую в настоящее время поддерживает любой менеджер загрузок.
Поэтому я хотел бы делать параллельные потоки данных.
Однако я не могу найти программу, которая поддерживает это, поэтому я подумал о том, чтобы просто запустить несколько экземпляров или rsync одновременно.
Это хорошая идея, или вы можете указать мне на более подходящий инструмент?
Между прочим, проблема, которую вы поднимаете, о том, что TCP-соединение не может быть достаточно быстрым, чтобы использовать всю полосу пропускания вашей сети, возникает только в сценариях, где произведение задержки полосы пропускания велико, что имеет место только в очень немногих сетях. В локальных сетях задержка мала, что позволяет уменьшить размер продукта, а в глобальных сетях полоса пропускания мала, что обеспечивает компактность продукта.
Если у вас есть сеть с очень большим продуктом задержки полосы пропускания, есть некоторые вещи, которые вы можете сделать, чтобы настроить TCP для работы с ним, начиная с увеличения размера окна и увеличения MTU пути (ну, это настройка IP, а не TCP твик, но он применим!). Посмотрите статьи, написанные об исследовательских сетях, чтобы узнать больше об этом. Чтобы получить дополнительную помощь в настройке TCP для вашего сценария, вам может потребоваться описание вашей конкретной сети.
Что касается использования rsync, вы не можете эффективно запускать два одновременных rsync, копирующих одни и те же файлы в одно и то же время.
единственное, что я могу придумать, что вы можете сделать на уровне rsync, - это разбить ваш каталог на несколько подкаталогов и передать их один за другим параллельно.
Вы можете заменить rsync на lftp - см. Мой пост на Superuser:
https://superuser.com/questions/75681/inverse-multiplexing-to-speed-up-file-transfer/305236#305236
Единственная проблема может заключаться в том, что lftp «не просто передает измененные / добавленные файлы». Но я могу вас заверить, это самый быстрый способ передачи данных в многопоточном режиме, который я видел.