tcpreplay rendimento em eth0 bem abaixo (iperf confirmado) max

2

Estou tentando reproduzir pacotes multicast UDP capturados a uma taxa de algumas centenas de Mbps, mas ele atinge o máximo de cerca de 86 Mbps . (Por algum motivo estranho, em outras ocasiões durante o dia, ele maximiza consistentemente um décimo dessa taxa, cerca de <8,8 Mbps )

exiba em eth0

Rende apenas cerca de 86Mbps:

> tcpreplay -ieth0 --topspeed x.pcap 
sending out eth0 
processing file: x.pcap
Actual: 459424 packets (137973257 bytes) sent in 12.23 seconds.         
Rated: 11281542.0 bps, 86.07 Mbps, 37565.33 pps

iperf em eth0

O iperf, por outro lado, vai até cerca de 800Mbps. Note que isto é verdadeiro mesmo durante os tempos em que o tcpreplay só produz cerca de 8.x Mbps)

iperf -c 192.168.20.55 -u -T 1 -t 5 -i 1 -b10000M
------------------------------------------------------------
Client connecting to 192.168.20.55, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.20.55 port 50238 connected with 192.168.20.55 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  96.9 MBytes   813 Mbits/sec
[  3]  1.0- 2.0 sec  96.9 MBytes   813 Mbits/sec
[  3]  2.0- 3.0 sec  97.8 MBytes   820 Mbits/sec
[  3]  3.0- 4.0 sec  96.4 MBytes   809 Mbits/sec
[  3]  4.0- 5.0 sec  96.4 MBytes   809 Mbits/sec
[  3]  0.0- 5.0 sec   484 MBytes   812 Mbits/sec
[  3] Sent 345538 datagrams
[  3] Server Report:
[  3]  0.0- 5.0 sec   400 MBytes   671 Mbits/sec   0.071 ms 60212/345537 (17%)
[  3]  0.0- 5.0 sec  1 datagrams received out-of-order

mostrar no lo

Só para garantir que o tcpreplay não esteja no meu disco:

> tcpreplay -ilo --topspeed x.pcap 
Warning in sendpacket.c:sendpacket_open_pf() line 669:
Unsupported physical layer type 0x0304 on lo.  Maybe it works, maybe it wont.
    See tickets #123/318
sending out lo 
processing file: x.pcap
Actual: 459424 packets (137973257 bytes) sent in 0.56 seconds.
Rated: 246380816.0 bps, 1879.74 Mbps, 820400.00 pps

O que explica que o tcpreplay é lento na eth0 e há uma maneira de melhorar isso?

    
por Eugene Beresovsky 24.06.2014 / 08:42

2 respostas

0

O problema parece não ser causado nem por minha caixa, nem por tcpreplay. Testando em uma máquina diferente, usando a seguinte configuração

                +-----------+
                | L3 switch |
                +-+----+----+
                  |    |
       +----------+    |
       |               |
 +-----+-----+         |
 | L2 switch |         |
 +-----+-----+         |
       | Cable 1       | Cable 2
   +------------------------+
   |  NIC 1          NIC 2  |
   |                        |
   |         My PC          |
   |                        |
   +------------------------+

Eu obtenho esses números

Cable     Mbs        pps 
--------------------------
     1    8.35    6174.75 
     2  601.07  444444.44 

Eu também troquei os cabos para ter certeza de que não é o NIC que é lento, e não é. Meu palpite: é culpa do switch L2.

    
por 25.09.2014 / 05:39
1

Qual versão do tcpreplay? As versões mais recentes são mais rápidas que as versões mais antigas. Você realmente quer rodar o último 4.x que suporta injeção via NETMAP.

Além disso, você tem certeza de que está em uma interface de 1 Gbps ou melhor? Você está conectado a uma porta de switch de 100 Mbps ou, por algum motivo, negociou 100 Mbps? Procure em / var / log / messages ou dmesg para ver como sua interface foi negociada.

    
por 24.06.2014 / 21:10