Maneiras de otimizar o desempenho em pipelines pela rede (RSH e SSH)

Maneiras de otimizar o desempenho em pipelines pela rede (RSH e SSH)

Considere uma transferência de dados através de uma rede de pipeline em sistemas legados com shell remoto (RSH), como:

rsh host -l user tar -cf - /home/dir \| compress | uncompress | tar -xvf -

e este em sistemas 'modernos':

ssh user@host tar -cf - /home/dir \| gzip | ungzip | tar -xvf -

PROBLEMAS DE DESEMPENHO:

Tive um desempenho muito ruim ao executar uma transferência entre AIX 4.3 para AIX 5.3 usando RSH. Mesmo tendo placas ociosas (10/100) conectando-as através de um switch ocioso, consegui um desempenho de cerca de 350Kbps transferindo 5,4GB.

Ao executar essa transferência entre AIX 5.3 e Linux, mas agora usando SSH e gzip, o desempenho é bem melhor, mas nunca atinge a capacidade da rede (Em uma LAN de 1 Gigabit obtive uma média de cerca de 400Mbps).

Existem maneiras de otimizar o desempenho do pipeline de rede, talvez personalizando buffers de pipe ou blocos/buffers de rede, ou o quê?

Responder1

Eu acho que você está limitando a CPU em vez da largura de banda, pelo menos na parte ssh.

Recebo cerca de 45-50 MB/s com scp (ssh cp) entre dois servidores ociosos, pois a criptografia/descriptografia nos servidores é o fator limitante. Adicione gzip/ungzip e você poderá diminuir ainda mais dependendo da quantidade de núcleos disponíveis.

As transferências não compactadas e não criptografadas têm números melhores. Você poderia tentar sem os comandos de compressão e ver como funciona.

Responder2

Você já fez um teste básico de velocidade para descartar compactação e E/S de disco?

Isso é muito fácil de fazer, conectar-se de um dos hosts afetados a outro via ftp e executar
put "|dd if=/dev/zero bs=1M count=1000″ /dev/null
o qual lerá 1 GB de/dev/zero de um lado e gravará em/dev/null do outro lado, que testa rede pura largura de banda. Isso é descrito com mais detalhes, por exemplo, em
Blog AIXChange: Duas maneiras de medir o desempenho da rede

Para a transferência via scp, você pode tentar reduzir a criptografia usando uma cifra de fluxo menos exigente (RC4) -o Cipher=arcfour ...como opção ao scp.

Veja tambémuma pergunta relacionadasugerindo o uso de -Cpara habilitar a compactação, embora pelo que entendi no seu caso o desempenho da CPU seja o fator limitante, e não a largura de banda da rede, então a compactação provavelmente irá piorar as coisas.

informação relacionada