![Maneiras de otimizar o desempenho em pipelines pela rede (RSH e SSH)](https://rvso.com/image/83714/Maneiras%20de%20otimizar%20o%20desempenho%20em%20pipelines%20pela%20rede%20(RSH%20e%20SSH).png)
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 -C
para 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.