Como interpreto os resultados do iperf3?

4

Eu não quero fazer nada maluco - apenas meça a velocidade de download e upload de um cliente para um servidor.

No servidor eu corri:

iperf3 -s

No cliente eu corri:

iperf3 -c IP_ADDESS

Estes são meus resultados:

Connecting to host IP_ADDRESS, port 5201
[  4] local LAN_IP port 2722 connected to IP_ADDRESS port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec   256 KBytes  2.08 Mbits/sec
[  4]   1.01-2.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   2.01-3.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   3.01-4.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   4.01-5.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   5.01-6.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   6.01-7.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   7.01-8.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   8.01-9.01   sec  0.00 Bytes  0.00 bits/sec
[  4]   9.01-10.01  sec   128 KBytes  1.05 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec  1.25 MBytes  1.05 Mbits/sec                  sender
[  4]   0.00-10.01  sec  1.07 MBytes   896 Kbits/sec                  receiver

iperf Done.

Eu entendo que ele primeiro diz a você o que ele está conectado, e então reporta a cada 1 segundo (por padrão) sobre o quão bem ele estava fazendo naquele 1 segundo. Quais são:

  1. Os resultados? Por padrão, os dados são enviados do cliente para o servidor (a menos que -R seja especificado, nesse caso, isso é revertido). Então, se isso é resultado de uma transferência unidirecional, por que existem 2 linhas no resultado?
  2. Os valores de ID. Eles são todos 4 no meu caso.
  3. Ao fazer uma transferência inversa:

    iperf3 -c IP_ADDRESS -R

os resultados incluem um campo extra:

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  3.02 MBytes  2.53 Mbits/sec   21             sender
[  4]   0.00-10.00  sec  2.94 MBytes  2.46 Mbits/sec                  receiver

O campo "Retr" significa que 21 pacotes tiveram que ser retransmitidos pelo TCP?

    
por Tal 23.01.2016 / 03:02

1 resposta

3

Eu fiz a mesma pergunta, então pesquisei o código e espero ter encontrado as respostas corretas.

  1. As duas linhas mostram a medição de ambos os lados. Pode-se argumentar que esses resultados devem ser idênticos. Mas como você pode ver nos dois resultados, o receptor mediu menos dados que o remetente. A principal razão é que a medição é temporizada. Então, por exemplo, quando você mede por 10 segundos (começando no primeiro pacote) você envia n pacotes, mas o receptor pode receber os últimos pacotes mais de 10 segundos após o primeiro. Então, estes não são contados. Além disso, há perda de pacotes.

  2. Isso é preenchido com sp->socket . Então, no final, este é o descritor de arquivo do soquete (que se traduz em um int). Tente executar com o -P Flag. Você verá IDs diferentes por conexão / soquete.

  3. Sua suposição é parcialmente correta. Este campo representa sp->result->stream_retrans . Então, esses são retransmissão. Este campo é exibido apenas quando as retransmissões aparecem (0 não é mostrado). Então, isso deve ser independente da direção.

por 20.01.2017 / 22:57

Tags