53

Я немного озадачен этим? Почему rsync быстрее, чем scp? Разве rsync не использует scp или делает что-то более эффективное? Есть ли способ ускорить scp?

6 ответов6

67

Rsync, очевидно, будет быстрее, чем scp, если цель уже содержит некоторые исходные файлы, поскольку rsync только копирует различия. Но я подозреваю, что ваш вопрос касался создания прямой копии для пустой цели.

Вы передали опцию -z в rsync ; это включает сжатие. Если пропускная способность сети является ограничивающим фактором (часто это так), сжатие может значительно увеличить скорость передачи.

Вы также можете включить сжатие с помощью scp , передав опцию -C . Это должно о вещах даже с rsync. Сжатие не включено по умолчанию в ssh, потому что оно экономит полосу пропускания, но добавляет задержку и нагрузку на процессор; Задержка плоха для интерактивных сеансов (это не относится к scp), а загрузка ЦП бесполезна, если копируемые файлы уже сжаты.

Более старые версии rsync использовали rsh, а не ssh, в качестве транспортного уровня по умолчанию, поэтому справедливое сравнение будет между rsync и rcp . Но ssh используется по умолчанию с версии 2.6.0, выпущенной 2004-01-01.

При одинаковых настройках сжатия я бы ожидал, что rsync и scp будут иметь одинаковую скорость. Пожалуйста, поделитесь ориентирами, если вы обнаружите иное.

10

попробуйте scp по-быстрому

scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput'  -c arcfour machine:file .

эти параметры ускоряют scp в 5 раз по сравнению с обычным scp machine:file.

Обновление 2017

На самом деле scp работает медленно из-за плохого управления деталями TCP, такими как MTU и размер буфера. К счастью, это было исправлено в проекте HPH SSH . Насколько я понимаю, вы можете использовать HPN SSH в качестве транспорта для rsync.

3

Для большого количества маленьких файлов rysnc намного быстрее, чем scp. Они говорят, что это потому, что у него меньше накладных расходов. Для одного большого файла я бы ожидал аналогичных результатов.

3

Раньше все было наоборот, но я считаю, что скорость rsync значительно улучшилась за последние несколько ревизий. Это также зависит от того, сколько файлов вы копируете. Если это много, rsync обычно будет быстрее, потому что scp запускает новый процесс для каждого файла, который вы копируете. Вы можете попробовать ослабить шифр, который использует scp, чтобы увидеть, ускоряется ли он. Последнее, что я помню, шифр arcfour был самым быстрым.

3

Для моего тестирования rsync работает быстрее, чем scp, вы можете использовать iotop для проверки их при передаче одного и того же файла:

sudo iotop -o

Может быть, вы получите другой результат, но вы можете проверить их сами. Кстати, при использовании scp не забудьте выбрать его шифр:

scp -c arcfour <source> <dest>

Хотя arcfour может ускорить шифрование.

0

Вы повторно копируете файлы поверх существующих? Если это так, способность rsync блокировать сравнение и копировать только различия будет иметь значение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .