¿Por qué rsync sobre SSH me da 10 veces el rendimiento de SCP?


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

scpsolo me da 200K / s, pero rsyncme da 1.9M / s

Probé varias veces, todos los mismos resultados.

rsync utiliza múltiples hilos?

Respuestas:


7

Ambos protocolos se basan en SSH. Y SSH tiene algunos gastos generales : wiki

SCP es un protocolo realmente ingenuo con un algoritmo realmente ingenuo para transferir algunos archivos pequeños. Tiene mucha sincronización (RTT - Tiempo de ida y vuelta) y pequeños buffers (básicamente 2048 B - fuente ).

Rsync está hecho para el rendimiento y, por lo tanto, ofrece resultados mucho mejores y tiene más funciones.

La aceleración 10x es específica para su caso. Si transfiriera archivos en todo el mundo a través de líneas de alta latencia, obtendría un rendimiento mucho peor en el scpcaso, pero en la red local, el rendimiento puede ser casi el mismo.

Y no, la compresión ( -Cpara scp) no ayudará. Los mayores problemas son la latencia y el tamaño del búfer.


7

RSYNC vs SCP

Básicamente, SCP realiza una copia antigua simple desde el origen hasta el destino localmente o a través de una red utilizando SSH, pero es posible que pueda usar el -Cconmutador para habilitar la compresión SSH para acelerar potencialmente la copia de datos a través de la red.

RSYNC transfiere solo las diferencias entre dos conjuntos de archivos a través de la conexión de red, utilizando un algoritmo eficiente de búsqueda de suma de verificación que optimiza automáticamente la conexión de red durante una transferencia de datos.

RSYNC

DESCRIPCIÓN

   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.

fuente


SCP

DESCRIPCIÓN

 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.

fuente


3
Sin embargo, en este caso, la situación es un poco diferente: solo está copiando un solo archivo. (Eso presumiblemente aún no existe en el extremo remoto.)
Daniel B

1
@DanielB No cree que todavía sea posible que RSYNC optimice de forma predeterminada la conexión de datos incluso para un solo archivo y tal vez comprima los datos durante la transmisión para que se envíen menos fragmentos de datos mientras que el SCP sin el -Cinterruptor no ¿Comprimir datos durante la transmisión por la tubería?
Pimp Juice IT

2
Ni la compresión ni la suma de comprobación se especifican en su rsynclínea de comando. Por supuesto, el algoritmo delta en el archivo siempre está activo. Probablemente sea solo eso scpapesta.
Daniel B
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.