Formas de optimizar el rendimiento en tuberías a través de la red (RSH y SSH)

Formas de optimizar el rendimiento en tuberías a través de la red (RSH y SSH)

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 -Cpara 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.

información relacionada