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

3

Considere uma transferência de dados em 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 -

QUESTÕES DE DESEMPENHO:

Eu tive um desempenho muito ruim executando uma transferência entre o AIX 4.3 para o AIX 5.3 usando o RSH. Mesmo tendo cartões ociosos (10/100) conectando-os através de um switch ocioso, obtive um desempenho de aproximadamente 350 Kbps transferindo 5,4 GB.

Ao executar essa transferência entre o AIX 5.3 e o Linux, mas agora usando SSH e gzip, o desempenho é muito 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 block / buffers de rede, ou o que?

    
por Luciano 17.02.2016 / 15:18

2 respostas

3

Acho que você está ficando limitado à CPU, em vez de limitado pela largura de banda, pelo menos na parte ssh.

Eu obtenho cerca de 45-50 MB / s com scp (ssh cp) entre dois servidores ociosos, pois a criptografia / descriptografia nos servidores é o fator limitante. Adicione o gzip / ungzip e você pode 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 isso acontece.

    
por 17.02.2016 / 19:36
1

Você fez um teste de velocidade básica ainda para excluir a compactação e a E / S de disco?

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

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

Veja também uma pergunta relacionada sugerindo o uso de -C para ativar a compactação, embora pelo que entendi em seu Caso o desempenho da CPU seja o fator limitante, e não a largura de banda da rede, a compactação provavelmente piorará as coisas.

    
por 18.02.2016 / 22:59

Tags