Mi computadora portátil y mi estación de trabajo están conectadas a un conmutador Gigabit. Ambos ejecutan Linux. Pero cuando copio archivos con rsync
, funciona mal.
Tengo unos 22 MB / s. ¿No debería obtener teóricamente unos 125 MB / s? ¿Cuál es el factor limitante aquí?
EDITAR: Realicé algunos experimentos.
Escribe el rendimiento en la computadora portátil
La computadora portátil tiene un sistema de archivos xfs con cifrado de disco completo. Utiliza el aes-cbc-essiv:sha256
modo de cifrado con una longitud de clave de 256 bits. El rendimiento de escritura en disco es 58.8 MB / s .
iblue@nerdpol:~$ LANG=C dd if=/dev/zero of=test.img bs=1M count=1024
1073741824 Bytes (1.1 GB) copied, 18.2735 s, 58.8 MB/s
Lea el rendimiento en la estación de trabajo
Los archivos que copié están en un software RAID-5 sobre 5 discos duros. Encima de la incursión hay un lvm. El volumen en sí está encriptado con el mismo cifrado. La estación de trabajo tiene una CPU FX-8150 que tiene un conjunto de instrucciones AES-NI nativo que acelera el cifrado. El rendimiento de lectura del disco es de 256 MB / s (el caché estaba frío).
iblue@raven:/mnt/bytemachine/imgs$ dd if=backup-1333796266.tar.bz2 of=/dev/null bs=1M
10213172008 bytes (10 GB) copied, 39.8882 s, 256 MB/s
Rendimiento de la red
Corrí iperf entre los dos clientes. El rendimiento de la red es de 939 Mbit / s
iblue@raven $ iperf -c 94.135.XXX
------------------------------------------------------------
Client connecting to 94.135.XXX, TCP port 5001
TCP window size: 23.2 KByte (default)
------------------------------------------------------------
[ 3] local 94.135.XXX port 59385 connected with 94.135.YYY port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.09 GBytes 939 Mbits/sec
fuente
Respuestas:
Otra forma de mitigar el uso elevado de la CPU, pero manteniendo la funcionalidad de rsync, es pasar de rsync / SSH a rsync / NFS. Puede exportar las rutas que desea copiar a través de NFS y luego usar rsync localmente desde el montaje NFS a su ubicación de destino.
En una prueba desde un disco de red WD MyBook Live, uno o más rsyncs del NAS en una red Gigabit hacia 2 discos USB locales no copiarían más de 10 MB / s (CPU: 80% usr, 20% sys), después de exportar NFS y rsyncing localmente desde el recurso compartido NFS a ambos discos Obtuve un total de 45MB / seg (maximizando ambos discos USB2) y poco uso de CPU. La utilización del disco cuando se usa rsync / SSH fue de aproximadamente el 6% y el uso de rsync / NFS fue más cercano al 24%, mientras que ambos discos USB2 estaban cerca del 100%.
Por lo tanto, efectivamente trasladamos el cuello de botella de la CPU NAS a ambos discos USB2.
fuente
Las razones pueden incluir: compresión, cifrado, la cantidad y el tamaño de los archivos que se copian, las capacidades de E / S de disco de los sistemas de origen y destino, la sobrecarga de TCP ... Todos estos factores pueden influir en el tipo de transferencia que está realizando.
Publique el comando rsync que está utilizando y proporcione detalles sobre las especificaciones de ambas computadoras.
Editar: el cifrado suele ser un factor limitante en las velocidades de rsync. Puede ejecutar con ssh y un cifrado de cifrado más ligero como
arcfour
Algo como:
rsync -e "ssh -c arcfour"
O puede usar un rsync / ssh modificado que puede deshabilitar el cifrado. Ver hpn-ssh: http://psc.edu/networking/projects/hpn-ssh
Pero, de nuevo, su computadora portátil tiene un disco lento en comparación con su estación de trabajo. Las escrituras pueden estar bloqueadas y esperando que la E / S vaya a su computadora portátil. ¿Cuáles son sus expectativas reales de rendimiento?
fuente
rsyncning
un disco encriptado dm-crypt conectado a un procesador de átomos a una caja NAS ARM ecryptfs , esto cambió mi velocidad de transferencia de 4MiB / sa 6MiB / s.rsync --protocol=29 -auh --progress /mnt/esata/pics/ -e "ssh -c arcfour" diskstation:/volume1/pics
Mejor que nada.Después de algunas pruebas más, finalmente encontré la respuesta yo mismo.
rsync
utiliza túneles sobre ssh por defecto. La criptografía lo hace lento. Así que necesitaba sortear esas cosas criptográficas.Solución 1: configurar un servidor rsync
Para usarlo a través del
rsync
protocolo, debe configurar un servidor rsyncd. Había una/etc/init.d/rsync
secuencia de comandos en mi computadora portátil, así que supuse que se estaba ejecutando rsyncd. Estaba equivocado./etc/init.d/rsync start
existe en silencio, cuando rsync no está habilitado en/etc/default/rsync
. Entonces también tienes que configurarlo/etc/rsyncd.conf
, lo cual es un fastidio.Si logra todo esto, debe usarlo
rsync file.foo user@machine::directory
. Tenga en cuenta que hay dos puntos .Solución 2: servidor rsh de la vieja escuela
Sin embargo, la configuración fue demasiado complicada para mí. Así que acabo de instalar y
rsh-server
en mi computadora portátil. Invocar rsync en la estación de trabajo con-e rexec
luego usa rsh en lugar de ssh. Lo que luego casi duplicó el rendimiento a 44.6 MB / s , que aún es lento. Los rebotes de velocidad entre 58 MB / s y 33 Mb / s , lo que indica que puede haber algunos problemas de control de tampón o de congestión. Pero eso está más allá del alcance de esta pregunta.fuente
rsync -e "ssh -c arcfour"
probar un rsync / ssh modificado que puede deshabilitar el cifrado. Verhpn-ssh
: psc.edu/networking/projects/hpn-sshEstas son preguntas y respuestas muy antiguas, pero falta algo importante: si está copiando datos ya comprimidos o cifrados, desactive la compresión.
Si sus datos no están comprimidos ni encriptados, ¡solo desea comprimirlos una vez! Rsync comprime con -z, ssh comprime con -C (puede ser por defecto). No he probado cuál es mejor ya que mis datos están comprimidos.
Mientras estoy en eso, puede desactivar el reenvío X y la asignación TTY, lo que resulta en:
Por último, asegúrese (por ejemplo, de usar
iptraf
) que realmente está usando la interfaz de red que cree que está usando. Para mi gran sorpresa, noté que en mi OSX el ssh saliente se vinculaba a la IP en la interfaz saliente predeterminada en lugar de a la IP en la interfaz en la que se suponía que se enrutaban los paquetes. Mi conexión cruzada GB directa entre dos computadoras portátiles también conectadas por WiFi no se estaba utilizando. Después de la investigación, se debió al uso de 169.254 / 16, que la Mac pone en todas las interfaces, y la computadora de destino responde a las solicitudes de ARP a pesar de que la solicitud entró en una interfaz diferente.fuente