Почему rsync через SSH дает мне 10-кратную пропускную способность SCP?

  1. scp [email protected]:~/file file
  2. rsync --partial --progress -Pav -e ssh [email protected]:~/file file

scp только дает мне 200K / s, но rsync дает мне 1.9M / s

Я тестировал несколько раз, все те же результаты.

rsync использует несколько потоков?

Оба протокола основаны на SSH. И у SSH есть некоторые накладные расходы : вики

SCP – действительно наивный протокол с действительно наивным алгоритмом для передачи нескольких небольших файлов. Он имеет большую синхронизацию (RTT – время разворота) и небольшие буферы (в основном 2048 B – источник ).

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

10-кратное ускорение зависит от вашего случая. Если вы передадите файлы по всему миру по дорогам с высокой задержкой, вы получите гораздо худшую производительность в случае с scp , но в локальной сети производительность может быть практически такой же.

И нет, сжатие ( -C для scp ) не поможет. Самыми большими проблемами являются задержка и размер буфера.

RSYNC против SCP

SCP в основном делает обычную старую копию от источника к месту назначения локально или по сети с использованием SSH, но вы можете использовать ключ -C чтобы включить сжатие SSH, чтобы потенциально ускорить копирование данных по сети.

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

RSYNC

ОПИСАНИЕ

  rsync is a program that behaves in much the same way that rcp does, but has many more options and uses the rsync remote-update protocol to greatly speed up file transfers when the destination file is being updated. The rsync remote-update protocol allows rsync to transfer just the dif- ferences between two sets of files across the network connection, using an efficient checksum-search algorithm described in the technical report that accompanies this package. 

источник


SCP

ОПИСАНИЕ

  scp copies files between hosts on a network. It uses ssh(1) for data transfer, and uses the same authentication and provides the same secu‐ rity as ssh(1). scp will ask for passwords or passphrases if they are needed for authentication. File names may contain a user and host specification to indicate that the file is to be copied to/from that host. Local file names can be made explicit using absolute or relative pathnames to avoid scp treat‐ ing file names containing ':' as host specifiers. Copies between two remote hosts are also permitted. 

источник

  • Ssh - нет маршрута к хосту
  • Ubuntu IPTables позволяет разрешить только 1 страну
  • Как заставить ssh войти в качестве нужного пользователя?
  • Ошибка сети PuTTY: программное обеспечение вызвало прерывание соединения
  • Как редактировать текстовые файлы в командной строке Windows?
  • Как исправить проблему несоответствия шифрования с помощью sftp?
  • Прокси PuTTY X11: предпринят неправильный протокол авторизации
  • Как я могу избежать проверки хоста SSH для известных хостов?
  • Невозможно получить переменную профиля с помощью ssh
  • Прокрутка в терминале (OS X) при запуске tail -f и ssh-ed в машину дает некоторые странные символы
  • Как исправить ошибку «не удается открыть дисплей» при открытии X-программы после того, как ssh'ing с включенной пересылкой X11?
  • Interesting Posts

    Java: Enum vs. Int

    Лучший метод синхронизации в C?

    ‘Delegate’ System.Action ‘не принимает 0 аргументов.’ Является ли это ошибкой компилятора C # (lambdas + два проекта)?

    Указанное значение не соответствует требуемому формату yyyy-MM-dd

    Каким может быть поведение Nullable в боксе / распаковке?

    Spark sql как взорваться без потери нулевых значений

    Предотrotation автоматической регистрации при использовании входа в Google+

    Обновить div с помощью ajax.beginform внутри asp mvc view

    Экспортировать (или печатать) с помощью скрипта google новую версию электронных таблиц google в pdf-файл, используя параметры pdf

    Различия между «BEGIN RSA PRIVATE KEY» и «НАЧАТЬ ЧАСТНЫЙ КЛЮЧ»

    В java, когда объект становится недоступным?

    Создать новый раздел на ssd hard (удалить спящий режим)

    Каков допустимый диапазон для возвращаемого значения программы в Linux / bash?

    VoIP-библиотека для Android

    Как использовать строку для создания EF-заказа по выражению?

    Давайте будем гением компьютера.