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


12
  1. scp user@aws-ec2:~/file file
  2. rsync --partial --progress -Pav -e ssh user@aws-ec2:~/file file

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

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

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

Ответы:


7

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

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

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

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

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


7

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.

источник


3
В этом случае ситуация несколько иная: он копирует только один файл. (Это, вероятно, еще не существует на удаленном конце.)
Даниэль Б

1
@DanielB Вы не думаете , что это еще может быть , что RSYNC по умолчанию оптимизирует подключение данных даже для одного файла и , возможно , сжатие данных во время передачи , так меньше порции данных фактически ниспослала трубы , тогда как SCP без -Cпереключателя Безразлично» t сжать данные во время передачи по трубе?
Сок Pimp IT

2
Ни сжатие, ни контрольная сумма не указываются в его rsyncкомандной строке. Конечно, в файле дельта-алгоритм всегда активен. Это, наверное, просто scpотстой.
Даниэль Б
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.