Necesitaba transferir un archivo de disco virtual KVM de 20 GB , almacenando el sistema de archivos raíz de una VM CentOS 6.5, de un servidor de laboratorio a otro. El gran tamaño del archivo y el hecho de que una vez comprimí un archivo de disco virtual de este tipo a unos cientos de megabytes me hicieron habilitar instintivamente la compresión, scppero me sorprendió ver una velocidad de transferencia bastante baja. Luego intenté bzip2en combinación con sshy caty me sorprendió. Aquí está el resumen de los métodos y el rendimiento promedio.
scp -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 11 MB / s.bzip2 -c vm1-root.img | ssh -l root 192.168.161.62 "bzip2 -d -c > /mnt/vdisks/vm1-root.img", 5 MB / s. Este resultado aún menor provocó la búsqueda en la red.scp -c arcfour -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 13 MB / s. Este uso de-c arcfourcomo se sugirió en una respuesta en serverfault. Apenas ayudó. Finalmente, deshabilité la compresión.scp vm1-root.img root@192.168.161.62:/mnt/vdisks/, 23 MB / s.
¿No debería la compresión haber sido más rápida?
EDITAR: No sé por qué la pregunta ha sido rechazada. Pensé que hay algo que aprender aquí.
Después de recibir la ssh(1)sugerencia de la página de manual de @sven, probé un par de métodos alternativos de transferencia de archivos que no implican compresión, ambos con mejores resultados.
cat vm1-root.img | ssh -l root 192.168.161.62 "cat > /mnt/vdisks/vm1-root.img", 26 MB / s.nc -l 5678 > /mnt/vdisks/vm1-root.imgen el receptor ync 192.168.161.62 5678 < vm1-root.imgen el transmisor, 40 MB / s. El puerto5678es arbitrario y estaba disponible.
¡El uso ncresultó ser el método de copia más rápido!
En el pasado, scp -Cfuncionó muy bien siempre que pensé que lo haría. Por ejemplo, al transferir syslogs ( /var/log/messages*) de pocos GB de tamaño. Una velocidad de transferencia sin comprimir de unos pocos cientos de KB / s aumentaría a 1-2 MB / s. Este ejemplo cae en el caso de una conexión lenta como se ha señalado en la página del manual.
Tengo un caso en el que una imagen de disco virtual recién creada para una partición de 20 GB tiene un tamaño comprimido de solo 200 MB. ¡Con una velocidad de transferencia de aproximadamente 25 MB / s, podríamos hacer la copia en solo 8 segundos en lugar de más de 13 minutos! Claramente, scpsin compresión es ineficiente en este caso y scp -Ces aún peor.
Supongo que la principal lección aprendida aquí es que scp -Cdebe considerarse como una conveniencia. Si un archivo se puede comprimir significativamente, entonces es mejor comprimirlo primero en el origen, transferir el formulario comprimido y finalmente comprimirlo en el destino. Las herramientas que realizan la compresión y descompresión rápidamente (por ejemplo, pbzip2 ) serán de mayor ayuda.