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

Por , 21/06/2010 10:21

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 fez o Leão no post sobre Controle de banda no 3750 e no PIX/ASA.

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

Iperf Server

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

Iperf Client 

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.

Iperf Client - Bidirecional

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

Iperf Server UDP

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 para quem tem medo de 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.

Jperf

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;

Até a próxima.

14 Comentários em “Testando a rede com o Iperf (gerador de tráfego)”

  1. Gustavo Lima Mac OS X Firefox 3.6.3 says:

    Mais um excelente post André. Parabéns..

  2. Cledir Justo Windows other version Firefox 3.6.3 says:

    Boa noite André, somente uma correção:
    No parágrafo: “Se você quiser aumentar a banda utilize a opção –b do lado client (iperf –c 10.10.8.75 –d 200M, por exemplo).” você utilizou “-d”. Porém só para o post ficar perfeito. Excelente post!! Gostei muito.

  3. André Ortega Windows other version Google Chrome 5.0.375.70 says:

    Obrigado Cledir.

  4. Muito bom o post André !

    É o material mais didático acerca do uso do Iperf em português que já encontrei na Internet !

    Abs,

  5. Alexandre Windows other version Firefox 3.6.8 says:

    Ele mede a banda de qual computador? Do server ou client?

  6. André Ortega Windows other version Google Chrome 5.0.375.125 says:

    Ele mede a largura de banda entre os dois computadores.

  7. Fábio Ubuntu Firefox 3.6.12 says:

    Ótimo post. Parabéns!

  8. birapcbira Windows other version Google Chrome 12.0.742.112 says:

    ótimo post parabens!

  9. Fernando Ubuntu Firefox 3.6.18 says:

    Parabéns.

  10. vinicius Windows other version Firefox 6.0 says:

    muito bom me ajudou bastante.

  11. Raquel Windows XP Firefox 6.0 says:

    André,no meu caso uma das minhas máquinas é linux…Tem alguma diferença? ou mantém a idéia? Desde já agradeço sua ajuda. Bjs

  12. André Ortega Windows other version Google Chrome 13.0.782.220 says:

    Nunca usei com Linux, mas não vejo diferença. Precisa só ver a documentação para confirmar se os comandos são os mesmos (-s, -c, -b).
    Vlw

  13. Diogo Windows XP Google Chrome 13.0.782.220 says:

    Já usei pra Linux e tenho quase certeza de que os comandos são os mesmos.

    Ótimo post!

    Abraços!

  14. Rafael Windows XP Firefox 6.0.2 says:

    Show! Estava mesmo precisando de um programinha desses.

Participe

Tema Brainwork 0.2(beta)