Pourquoi rsync sur SSH me donne-t-il 10 fois le débit de SCP?

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

scp ne me donne que 200K / s, mais rsync me donne 1.9M / s

J'ai testé plusieurs fois, tous les mêmes résultats.

rsync utilise plusieurs threads?

    Les deux protocoles sont basés sur SSH. Et SSH lui-même a des frais généraux : Wiki

    SCP est un protocole vraiment naïf avec un algorithme vraiment naïf pour le transfert de quelques petits fichiers. Il a beaucoup de synchronisation (RTT – Round Trip Time) et de petits tampons (essentiellement 2048 B – source ).

    Rsync est conçu pour la performance et, par conséquent, il donne de meilleurs résultats et dispose de plus de fonctionnalités.

    L'accélération de 10x est spécifique à votre cas. Si vous transférez des fichiers sur l'ensemble du monde sur des lignes à forte latence, vous obtiendrez des performances encore pires sur le cas scp , mais sur le réseau local, la performance peut être presque la même.

    Et non, la compression ( -C pour scp ) ne sera pas utile. Les problèmes les plus importants sont la latence et la taille du tampon.

    RSYNC vs SCP

    SCP fait fondamentalement une ancienne copie simple de la source vers la destination localement ou à travers un réseau en utilisant SSH, mais vous pouvez utiliser le commutateur -C pour permettre à la compression SSH d'accélérer potentiellement la copie des données sur le réseau.

    RSYNC transfère uniquement les différences entre deux ensembles de fichiers à travers la connexion réseau, en utilisant un algorithme de recherche de somme de contrôle efficace qui optimise automatiquement la connexion réseau lors d'un transfert de données.

    RSYNC

    LA DESCRIPTION

      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. 

    la source


    SCP

    LA DESCRIPTION

      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. 

    la source