Por que o rsync sobre SSH me dá 10x a taxa de transferência do SCP?

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

scpsó me dá 200K / s, mas rsyncme dá 1,9M / s

Eu testei várias vezes, todos os mesmos resultados.

rsync usa vários threads ??

Sato
fonte

Respostas:

7

Ambos os protocolos são baseados no SSH. E o próprio SSH tem alguma sobrecarga : wiki

O SCP é um protocolo realmente ingênuo, com algoritmo realmente ingênuo para transferir alguns arquivos pequenos. Possui muita sincronização (RTT - Round Trip Time) e buffers pequenos (basicamente 2048 fontes B ).

O Rsync é feito para desempenho e, portanto, oferece resultados muito melhores e possui mais recursos.

A aceleração de 10x é específica para o seu caso. Se você transferisse arquivos para todo o mundo por vias de alta latência, obteria um desempenho muito pior no scpcaso, mas na rede local, o desempenho pode ser quase o mesmo.

E não, a compactação ( -Cpara scp) não ajudará. Os maiores problemas são a latência e o tamanho do buffer.

Jakuje
fonte
7

RSYNC vs SCP

O SCP basicamente faz uma cópia antiga simples da origem para o destino localmente ou através de uma rede usando SSH, mas você pode usar o -Ccomutador para permitir que a compactação SSH potencialmente acelere a cópia de dados na rede.

O RSYNC transfere apenas as diferenças entre dois conjuntos de arquivos na conexão de rede, usando um algoritmo eficiente de pesquisa de soma de verificação que otimiza automaticamente a conexão de rede durante uma transferência de dados.

RSYNC

DESCRIÇÃO

   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.

fonte


SCP

DESCRIÇÃO

 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.

fonte

Pimp Juice IT
fonte
3
Nesse caso, a situação é um pouco diferente: ele está apenas copiando um único arquivo. (Que, presumivelmente, ainda não existe no extremo remoto.)
Daniel B
11
@DanielB Você ainda não acha que o RSYNC, por padrão, otimiza a conexão de dados, mesmo para um arquivo, e talvez comprima os dados durante a transmissão, para que menos blocos de dados sejam enviados pelo canal, enquanto o SCP sem o -Cswitch não ' comprimir dados durante a transmissão dos mesmos pelo cano?
Pimp Juice IT
2
Nem compactação nem soma de verificação são especificados em sua rsynclinha de comando. Obviamente, o algoritmo delta no arquivo está sempre ativo. Provavelmente é apenas uma scpporcaria.
Daniel B