Ответы:
Rsync, очевидно, будет быстрее, чем scp, если цель уже содержит некоторые исходные файлы, поскольку rsync только копирует различия. Но я подозреваю, что ваш вопрос касался создания прямой копии для пустой цели.
Вы передали -z
опцию rsync
; это включает сжатие. Если пропускная способность сети является ограничивающим фактором (часто это так), сжатие может значительно увеличить скорость передачи.
Вы также можете включить сжатие с scp
помощью -C
опции. Это должно о вещах с rsync. Сжатие не включено по умолчанию в ssh, поскольку оно экономит полосу пропускания, но добавляет задержку и нагрузку на процессор; Задержка плоха для интерактивных сеансов (это не относится к scp
), а загрузка ЦП бесполезна, если копируемые файлы уже сжаты.
Более старые версии rsync
использовали rsh, а не ssh в качестве транспортного уровня по умолчанию, поэтому справедливое сравнение будет между rsync
и rcp
. Но ssh используется по умолчанию с версии 2.6.0, выпущенной 2004-01-01.
С одинаковыми настройками сжатия, я ожидаю, rsync
и scp
будет иметь практически одинаковую скорость. Пожалуйста, поделитесь ориентирами, если вы обнаружите иное.
rsync -z
все еще ПУТЬ быстрее, чем scp
с любым сжатием, предложенным в этих ответах. Это также быстрее, чем сжимать и архивировать в один файл вручную и scp
загружать этот файл ( scp
при этом сжатие происходит даже медленнее). Таким образом, вопрос об ОП фактически остается без ответа: scp
чем медленнее, чем rsync
?
попробуйте scp по-быстрому
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
эти параметры ускоряют scp в 5 раз по сравнению с обычным scp machine: file.
Обновление 2017
На самом деле scp работает медленно из-за плохого управления деталями TCP, такими как MTU и размер буфера. К счастью, это было исправлено в проекте HPN SSH . Насколько я понимаю, вы можете использовать HPN SSH в качестве транспорта для rsync.
scp -p
(сохраняйте дату / время) по умолчанию, и, вероятно, -r
(рекурсивно) так scp -pr -C ...
. (Я просто должен был очистить и перезапустить 40Gb scp, используя их, потому что я забыл -p
)
Раньше все было наоборот, но я считаю, что скорость rsync значительно улучшилась за последние несколько ревизий. Это также зависит от того, сколько файлов вы копируете. Если это много, rsync обычно будет быстрее, потому что scp запускает новый процесс для каждого файла, который вы копируете. Вы можете попробовать ослабить шифр, который использует scp, чтобы увидеть, ускоряется ли он. Последнее, что я помню, шифр arcfour был самым быстрым.
Для моего тестирования rsync работает быстрее, чем scp , вы можете использовать iotop для проверки их при передаче одного и того же файла:
sudo iotop -o
Может быть, вы получите другой результат, но вы можете проверить их сами. Кстати, при использовании scp не забудьте выбрать его шифр:
scp -c arcfour <source> <dest>
Хотя arcfour
может ускорить шифрование.
Вы повторно копируете файлы поверх существующих? Если это так, способность rsync блокировать сравнение и копировать только различия будет иметь значение.