Arquivo

Archive for the ‘rede’ Category

Testando o throughput da rede com o Iperf (gerador de tráfego)

23 de março de 2011 Deixe um comentário

Testando o throughput da rede com o Iperf (gerador de tráfego)

 

Uma ferramenta extremamente útil e ainda gratuita!!

O Iperf é um software livre, do tipo client/server desenvolvido pelo National Laboratory for Applied Network Research (NLANR). Com ele podemos testar/medir o throughput da rede, e é claro, também podemos usá-lo como ferramenta de apoio para outros testes, como por exemplo saber se o controle de banda na rede esta realmente sendo executado

Para usar o Iperf basta iniciá-lo como server em um PC, e como client noutro. O client passará a enviar tráfego TCP para o servidor por 10 segundos, e em seguida mostrará a quantidade dados transferida (MBytes) e a velocidade atingida (Mbits/s).

Faça o download do programa aqui (há versões para Windows, Solaris e OS X), e instale-o nos dois computadores a serem utilizados no teste (basta copiar o arquivo iperf.exe para uma pasta qualquer, no caso do Windows).

Como usar o Iperf no Windows

Via linha de comando (Iniciar > Executar > digite “cmd”) entre na pasta onde o Iperf foi salvo e depois digite iperf –s. Este comando fará o Iperf ser executado como server e ele passará a aguardar as conexões do client.

SERVER PC

C:\Program Files\Iperf>iperf –s

No segundo computador utilizado para o teste, na linha de comando, digite iperf – c e o IP do Iperf Server. Isto é suficiente para que o Iperf envie tráfego TCP do client para o server durante 10 segundo (essa é a configuração padrão).

CLIENT PC

C:\Program Files\Iperf>iperf –c 10.10.8.75

Após 10 segundos as informações são mostradas, como na imagem acima. Neste exemplo, em 10 segundos foram transferidos 109 MBytes, atingindo a velocidade de média de 91,2 Mbits/sec (normal em uma rede 100 Mbits).

No server também são mostradas as estatísticas.

Mudando a configuração padrão – Teste bidirecional

Apesar do Iperf enviar tráfego no sentido Client –> Server por padrão, podemos configurá-lo para que o teste seja executado nos dois sentidos simultaneamente.

TESTE BIDIRECIONAL

Execute o Iperf Server da mesma forma (iperf –s) e do lado client adicione o argumento –d.

Assim como no teste anterior após 10 segundos as estatísticas são mostradas. Observe que desta vez temos duas linhas, sendo que em um sentido a transferência atingiu 24,1 Mbits/s e no outro 91.8 Mbits/s. Se somarmos as duas temos 115,9 Mbits/s (bem abaixo dos 200 Mbits/s nominal de uma rede full duplex…).

Usando UDP

Outra opção é adicionar o argumento –u nos dois lados (server e client) para que o teste seja efetuado com pacotes UDP.

USANDO UDP

SERVER –  C:\Program Files\Iperf> iperf -s –u
CLIENT  –  C:\Program Files\Iperf> iperf –
c 10.10.8.75 –u

Usando esta opção, no fim, quando são exibidas as estatísticas no server, aparecem mais três itens: Jitter, número total de pacotes transmitidos e pacotes perdidos.

Nos mesmos 10 segundos utilizados anteriormente, tivemos 6,242 milissegundos de jitter e nenhum pacote perdido, de 893 transmitidos. Observe também, que a transferência de dados foi menor, isso porque a taxa de transferência padrão UDP no Iperf é de 1 Mbps.

Se você quiser aumentar a banda utilize a opção –b do lado client (iperf –c 10.10.8.75 –b 200M, por exemplo). Este opção funciona para o modo UDP apenas.

Mais opções

Além das opções já citadas, o Iperf ainda oferece outros argumentos, que podem ser utilizados de acordo com sua necessidade.

Client e Server:

  • -f      Formato das informações: Kbits, Mbits, KBytes, MBytes
  • -h     Ajuda – Mostrará todas as opções
  • -i n   Exibe o status a cada n segundos
  • -o <filename> Salva o resultado ou mensagem de erro em um arquivo
  • -p     Especifica a porta a ser utilizada
  • -u     Define o uso do UDP, ao invés do TCP
  • -v     Mostra a versão

Server:

  • -s     Inicia o Iperf como Servidor

Client:

  • -c     Inicia o Iperf como Cliente (client)
  • -d     Para fazer o teste bidirecional simultaneamente (dualtest)
  • -b     Especifica a banda a ser utilizada (bandwith)
  • -n     Número de byte para transmissão
  • -r     Para fazer o teste bidirecional sendo um lado de cada vez (tradoff)
  • -t     Tempo de transmissão (default 10 segundos)

Interface Gráfica

Pra ficar ainda melhor Pra quem não gosta ou tem medo da linha de comando temos a interface gráfica Jperf.

Faça o download e descompacte a pasta Jperf. Nesta temos a interface gráfica e o próprio Iperf. Execute o arquivo Jperf.bat, que iniciará a interface em Java.

 

Considerações

  • Além da rede, o poder de processamento das máquinas utilizadas e a utilização da CPU e Memória das mesmas também influenciam no resultado;
  • Cuidado ao gerar tráfego em uma rede em produção;
  • Para você ter parâmetros de comparação, é aconselhável fazer um teste ponto a ponto, com dois computadores conectados através de cabo crossover. Depois testar usando a rede;
  • Quando usando UDP você pode especificar a banda máxima possível, 1000M, por exemplo. Faça o teste e verifique se hoje perda de pacote. Se houver, repita o teste diminuindo a banda para 900M e verifique novamente. Repita o processo até chegar a um ponto em que não haja perda de pacote;
  • Lembre-se que o resultado mostra o resultado obtido naquele momento. Um segundo depois, em um novo teste, o resultado pode ser outro;