Perché rsync su SSH mi dà 10 volte il throughput di SCP?


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

scpmi dà solo 200K / s, ma rsyncmi dà 1,9M / s

Ho provato più volte, tutti gli stessi risultati.

rsync usa più thread ??

Risposte:


7

Entrambi i protocolli sono basati su SSH. E SSH stesso ha un certo sovraccarico : wiki

SCP è un protocollo davvero ingenuo con un algoritmo davvero ingenuo per il trasferimento di alcuni file di piccole dimensioni. Ha molta sincronizzazione (RTT - Round Trip Time) e piccoli buffer (fondamentalmente 2048 B - sorgente ).

Rsync è progettato per le prestazioni e quindi offre risultati molto migliori e ha più funzionalità.

Lo speedup 10x è specifico per il tuo caso. Se trasferissi file in tutto il mondo su corsie ad alta latenza, otterrai prestazioni molto peggiori sul scpcaso, ma sulla rete locale, le prestazioni possono essere quasi le stesse.

E no, la compressione ( -Cper scp) non aiuterà. I maggiori problemi sono la latenza e la dimensione del buffer.


7

RSYNC vs SCP

SCP fondamentalmente esegue una semplice copia dall'origine alla destinazione localmente o attraverso una rete utilizzando SSH, ma potresti essere in grado di utilizzare lo -Cswitch per abilitare la compressione SSH per accelerare potenzialmente la copia dei dati attraverso la rete.

RSYNC trasferisce solo le differenze tra due serie di file attraverso la connessione di rete, utilizzando un algoritmo di ricerca checksum efficiente che ottimizza automaticamente la connessione di rete durante un trasferimento di dati.

RSYNC

DESCRIZIONE

   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

DESCRIZIONE

 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


3
In questo caso, la situazione è leggermente diversa: copia solo un singolo file. (Presumibilmente non esiste ancora sul lato remoto.)
Daniel B,

1
@DanielB Non pensi che potrebbe ancora essere che RSYNC ottimizzi per impostazione predefinita la connessione dati anche per un solo file e forse comprimendo i dati durante la trasmissione, quindi meno blocchi di dati vengono effettivamente inviati lungo la pipe mentre lo SCP senza lo -Cswitch non lo fa ' comprimere i dati durante la trasmissione lungo il tubo?
Pimp Juice IT

2
Né la compressione né il checksum sono specificati nella sua rsyncriga di comando. Naturalmente l'algoritmo delta nel file è sempre attivo. Probabilmente è solo quello che fa scpschifo.
Daniel B,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.