O iperf é válido para medir o desempenho da rede?

1

Estamos investigando problemas de desempenho em uma de nossas implantações de software entre nossos servidores de aplicativos (Windows) e nossas instâncias Redis (Linux).

Em um link de 10 Gbits / s, conexões TCP únicas aparentemente só alcançam 10 Mbits / s. Abrir várias conexões TCP nos permite alcançar uma banda mais alta. O UDP não parece ser afetado por essas limitações e atinge a velocidade máxima do link. Isso nos faz suspeitar que algum dispositivo de rede (firewall, proxy?) Dentro da rede causa essas diferenças de taxa de transferência.

Fizemos essas medições usando iperf (mesma versão) nos servidores Windows e no Linux.

No entanto, nossa equipe de rede descarta completamente esses resultados com base no fato de que "o iperf não é oficialmente suportado no Windows e, portanto, os resultados não são confiáveis". Ao mesmo tempo, eles negam fornecer uma ferramenta alternativa para fazer essas medições e afirmam que "a rede está bem".

Então, minha pergunta é: o iperf pode ser usado de maneira confiável para medir o desempenho do TCP e do UDP entre servidores Windows e Linux? Se não, qual ferramenta você recomendaria?

    
por ereOn 19.08.2015 / 15:55

2 respostas

0

iperf poderia ser usado, gostaria de saber quais parâmetros você estava usando quando 10 Mbps foram relatados.

Outra ferramenta útil é o Netpipe (disponível em repositórios do Linux) e, para o Windows, eu recomendaria usar a versão do Java, disponível aqui :

Informações sobre como executar o Netpipe são aqui disponíveis.

Podemos ajudá-lo a identificar o problema com relação ao acesso ao Redis. Qual fornecedor de rede você está usando?

    
por 16.09.2015 / 01:36
0
O

iperf é perfeitamente suportado no Windows desde, pelo menos, 2005. Agora você tem versões diferentes para iperf3 no Windows : 32 bits, 64 bits e até mesmo versões UWP estão disponíveis.

Uma vez que você tenha a mesma versão (e por versão quero dizer build, como v3.1.3 por exemplo) de iperf3 em ambos, cliente e servidor, você pode testar por 10gbps fazendo o seguinte:

Servidor

iperf3 -s

Deve mostrar uma saída como:

------------------------ 
Server listening on 5201
------------------------

Cliente

iperf3 -P XX -c $server_ip

Onde:

  • "P XX" representa o número de fluxos paralelos
  • "$ server_ip" o IP do servidor acima

Isso deve mostrar algo como:

[SUM] 0.00-10.00 sec 10.9 GBytes 9.30 Gbits/sec   sender 
[SUM] 0.00-10.00 sec 10.8 GBytes 9.28 Gbits/sec   receiver

Se você não estiver contornando isso, talvez queira tentar brincar com o tamanho da janela TCP. Você pode mudá-lo do lado do cliente com o -w XXu flag, onde XX é o tamanho e u a unidade (k, m).

Outra maneira de testar a largura de banda da rede é servir um arquivo http de uma das extremidades e usar algum tipo de ferramenta de download que permita fluxos paralelos (wget, filezilla ou quase todos os gerenciadores de download). Ou executar uma ferramenta benhmark, mas ficaria com iperf, que geralmente é a ferramenta padrão para o trabalho para (quase) todos.

    
por 19.05.2018 / 08:49