GNU/Linux >> Linux Esercitazione >  >> Linux

Perché rsync su SSH mi offre un throughput 10 volte superiore a quello di SCP?

RSYNC vs SCP

SCP fondamentalmente fa una semplice copia dall'origine alla destinazione localmente o attraverso una rete usando SSH ma potresti essere in grado di usare -C passare per abilitare la compressione SSH per velocizzare 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 efficiente algoritmo di ricerca del checksum 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


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

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 -- source).

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

L'accelerazione 10x è specifica per il tuo caso. Se trasferissi file in tutto il mondo su corsie ad alta latenza, otterresti prestazioni molto peggiori su scp caso, ma sulla rete locale, le prestazioni possono essere quasi le stesse.

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


Linux
  1. Perché l'utente root ha bisogno dell'autorizzazione Sudo?

  2. Perché l'opzione Ssh -t aggiunge Cr e Lf nell'output reindirizzato?

  3. Perché non riesco a esportare il display Linux?

  4. Invio di una password tramite SSH o SCP con subprocess.Popen

  5. Perché il preprocessore C interpreta la parola linux come la costante 1?

Come trasferire file con Rsync su SSH

Riprendi i file parzialmente trasferiti su SSH utilizzando Rsync

Perché wget'ing un'immagine mi dà un file, non un'immagine?

Un kernel compromesso fornisce il controllo completo su un dispositivo?

Perché il bit setuid funziona in modo incoerente?

Montaggio di un file system su Internet