Respuestas:
Rsync obviamente será más rápido que scp si el destino ya contiene algunos de los archivos fuente, ya que rsync solo copia las diferencias. Pero sospecho que su pregunta era sobre hacer una copia directa a un objetivo vacío.
Has pasado la -z
opción a rsync
; Esto activa la compresión. Si el ancho de banda de la red es el factor limitante (a menudo lo es), la compresión puede mejorar la velocidad de transferencia en una cantidad notable.
También puede habilitar la compresión scp
al pasar la -C
opción. Esto debería incluso igualar las cosas con rsync. La compresión no está habilitada por defecto en ssh porque ahorra ancho de banda pero agrega latencia y sobrecarga de la CPU; la latencia es mala para sesiones interactivas (esto no se aplica a scp
), y la sobrecarga de la CPU es inútil si los archivos que está copiando ya están comprimidos.
Las versiones anteriores de rsync
rsh utilizado en lugar de ssh como la capa de transporte predeterminada, por lo que una comparación justa sería entre rsync
y rcp
. Pero ssh ha sido el valor predeterminado desde 2.6.0 lanzado el 01-01-2004.
Con los ajustes de compresión idénticas, esperaría rsync
y scp
que tienen esencialmente la misma velocidad. Comparta puntos de referencia si encuentra lo contrario.
rsync -z
todavía es MUCHO más rápido que scp
con cualquier compresión sugerida en estas respuestas habilitada. También es más rápido que comprimir y archivar en un archivo manualmente e incorporar scp
ese archivo ( scp
con compresión es aún más lento que eso). Entonces, la pregunta del OP en realidad sigue sin respuesta: ¿con scp
qué es tan lento en comparación con rsync
?
prueba scp de forma rápida
scp -p -C -o 'CompressionLevel 9' -o 'IPQoS throughput' -c arcfour machine:file .
estas opciones aceleran scp 5 veces en mi configuración en comparación con la máquina scp simple: archivo.
Actualización 2017
En realidad, scp es lento debido a la mala gestión de los detalles de TCP, como MTU y el tamaño del búfer. Afortunadamente, esto ha sido solucionado por el proyecto HPN SSH . Según tengo entendido, puede usar HPN SSH como transporte para rsync.
scp -p
(conservar fecha / hora) como predeterminado, y probablemente -r
(recursivo) scp -pr -C ...
. (Solo tuve que restregar y reiniciar un trabajo scp de 40 Gb usando estos porque olvidé el -p
)
Solía ser al revés, pero creo que la velocidad de rsync ha mejorado mucho en las últimas revisiones. También depende de cuántos archivos esté copiando. Si es mucho, rsync generalmente será más rápido porque scp genera un nuevo proceso para cada archivo que está copiando. Puede intentar debilitar el cifrado que usa scp para ver si se acelera. Lo último que recuerdo es que la cifra del arco iris fue la más rápida.
Para mis pruebas, rsync es más rápido que scp , puede usar iotop para probarlas al transferir el mismo archivo:
sudo iotop -o
Tal vez obtendrá un resultado diferente, pero puede probarlos usted mismo. Por cierto, mientras usa scp , no olvide elegir su cifrado:
scp -c arcfour <source> <dest>
Mientras arcfour
puede acelerar el cifrado.
¿Estás re-copiando archivos sobre los existentes? Si es así, la capacidad de rsync para bloquear comparar y solo copiar las diferencias será relevante.