![Formas de optimizar el rendimiento en tuberías a través de la red (RSH y SSH)](https://rvso.com/image/83714/Formas%20de%20optimizar%20el%20rendimiento%20en%20tuber%C3%ADas%20a%20trav%C3%A9s%20de%20la%20red%20(RSH%20y%20SSH).png)
Considere una transferencia de datos a través de una red de tuberías en sistemas heredados con shell remoto (RSH), como:
rsh host -l user tar -cf - /home/dir \| compress | uncompress | tar -xvf -
y este en sistemas 'modernos':
ssh user@host tar -cf - /home/dir \| gzip | ungzip | tar -xvf -
PROBLEMAS DE DESEMPEÑO:
Experimenté un rendimiento muy malo al ejecutar una transferencia entre AIX 4.3 y AIX 5.3 usando RSH. Incluso teniendo tarjetas inactivas (10/100) conectándolas a través de un interruptor inactivo, obtuve un rendimiento de aproximadamente 350 Kbps transfiriendo 5,4 GB.
Al ejecutar esta transferencia entre AIX 5.3 y Linux, pero ahora usando SSH y gzip, el rendimiento es mucho mejor, pero nunca alcanza la capacidad de la red (en una LAN de 1 Gigabit obtuve un promedio de aproximadamente 400 Mbps).
¿Hay formas de optimizar el rendimiento de la canalización de la red, tal vez personalizando los buffers de tubería o los bloques/buffers de red, o qué?
Respuesta1
Creo que estás teniendo una CPU limitada en lugar de un ancho de banda limitado, al menos en la parte ssh.
Obtengo alrededor de 45-50 MB/s con scp (ssh cp) entre dos servidores que de otro modo estarían inactivos, ya que el cifrado/descifrado en los servidores es el factor limitante. Agregue gzip / ungzip y es posible que baje más dependiendo de la cantidad de núcleos disponibles.
Las transferencias sin comprimir y sin cifrar tienen mejores números. Podrías intentarlo sin los comandos de compresión y ver cómo funciona.
Respuesta2
¿Ya hiciste una prueba de velocidad básica para descartar la compresión y la E/S del disco?
Eso es bastante fácil de hacer, conéctese desde uno de los hosts afectados a otro a través de ftp y ejecute
put "|dd if=/dev/zero bs=1M count=1000″ /dev/null
el cual leerá 1 GB de /dev/zero en un lado y lo escribirá en /dev/null en el otro lado, lo que prueba la red pura. banda ancha. Esto se describe con más detalle, por ejemplo en
Blog de AIXChange: Dos formas de medir el rendimiento de la red
Para la transferencia a través de scp, puede intentar reducir el cifrado utilizando un cifrado de flujo menos exigente (RC4) -o Cipher=arcfour ...
como opción a scp.
Ver tambiénuna pregunta relacionadasugiriendo el uso de -C
para habilitar la compresión, aunque por lo que entendí en su caso, el rendimiento de la CPU es el factor limitante, y no el ancho de banda de la red, por lo que la compresión probablemente empeorará las cosas.