GNU/Linux >> Tutoriels Linux >  >> Linux

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

RSYNC contre SCP

SCP fait essentiellement une ancienne copie ordinaire de la source à la destination localement ou sur un réseau en utilisant SSH, mais vous pouvez peut-être utiliser le -C commutateur pour activer la compression SSH afin 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 via 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

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.

source

SCP

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.

source


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

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

Rsync est fait pour la performance et donne donc de bien meilleurs résultats et a plus de fonctionnalités.

L'accélération 10x est spécifique à votre cas. Si vous transfériez des fichiers dans le monde entier via des voies à latence élevée, vous obtiendriez des performances bien pires sur le scp cas, mais sur le réseau local, les performances peuvent être presque les mêmes.

Et non, compression (-C pour scp ) n'aidera pas. Les plus gros problèmes sont la latence et la taille de la mémoire tampon.


Linux
  1. Ssh – Restreindre un utilisateur Ssh/scp/sftp à un répertoire ?

  2. Pourquoi l'utilisateur racine a-t-il besoin d'une autorisation Sudo ?

  3. Pourquoi `md5sum` ne donne-t-il pas le même hachage qu'Internet ?

  4. Ssh – Pourquoi Firefox est-il si lent sur Ssh ?

  5. Envoi d'un mot de passe via SSH ou SCP avec subprocess.Popen

Comment transférer des fichiers avec Rsync sur SSH

Reprendre les fichiers partiellement transférés via SSH à l'aide de Rsync

Pourquoi wget'ing une image me donne-t-il un fichier, pas une image ?

Un noyau compromis donne-t-il un contrôle complet sur un périphérique ?

Pourquoi le bit setuid fonctionne-t-il de manière incohérente ?

Rsync sur SSH n'obtient aucun tty présent