Estoy un poco confundido por esto? ¿Por qué rsync es más rápido que scp? ¿Rsync no usa scp debajo o hace algo más eficiente? ¿Hay alguna forma de acelerar scp?
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 -zopció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 scpal pasar la -Copció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 rsyncrsh utilizado en lugar de ssh como la capa de transporte predeterminada, por lo que una comparación justa sería entre rsyncy 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 rsyncy scpque tienen esencialmente la misma velocidad. Comparta puntos de referencia si encuentra lo contrario.
Agradable, el uso de -C hizo que mi velocidad de transferencia aumentara de 5 MB a 20 MB
2014
Acabo de probar eso para un directorio que contiene 16 archivos de alrededor de 3-9 MB y rsync -ztodavía es MUCHO más rápido que scpcon 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 scpese archivo ( scpcon compresión es aún más lento que eso). Entonces, la pregunta del OP en realidad sigue sin respuesta: ¿con scpqué es tan lento en comparación con rsync?
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.
¡¡Genial gracias!! Sin embargo, siempre lo hace 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)
smci
Agregué -p al comando, gracias por una pista.
Peter K
4
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.
Scp en realidad no genera un nuevo proceso para cada archivo que se copia. Tiene un proceso en el lado de envío y otro en el lado de recepción, al igual que con rsync.
Kenster
3
Para una gran cantidad de archivos pequeños, rysnc es mucho más rápido que scp. Dicen que es porque tiene una sobrecarga más pequeña. Para un archivo grande, esperaría resultados similares.
¿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.
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 arsync
; 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 ascp
), 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 entrersync
yrcp
. 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
yscp
que tienen esencialmente la misma velocidad. Comparta puntos de referencia si encuentra lo contrario.fuente
rsync -z
todavía es MUCHO más rápido quescp
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 incorporarscp
ese archivo (scp
con compresión es aún más lento que eso). Entonces, la pregunta del OP en realidad sigue sin respuesta: ¿conscp
qué es tan lento en comparación conrsync
?prueba scp de forma rápida
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.
fuente
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.
fuente
Para una gran cantidad de archivos pequeños, rysnc es mucho más rápido que scp. Dicen que es porque tiene una sobrecarga más pequeña. Para un archivo grande, esperaría resultados similares.
fuente
Para mis pruebas, rsync es más rápido que scp , puede usar iotop para probarlas al transferir el mismo archivo:
Tal vez obtendrá un resultado diferente, pero puede probarlos usted mismo. Por cierto, mientras usa scp , no olvide elegir su cifrado:
Mientras
arcfour
puede acelerar el cifrado.fuente
¿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.
fuente