Re: UDP Connection tuning questions regarding the -b and -l options


Marc Herbert wrote:

>>>As I understand it I am stressing the server nics and switches
>>>more by trying to achieve the same bandwidth throughput with many
>>>more (and less optimal from the hardware's point of view) packets.
>>>Hence more are dropped by the hardware (or OS).
> 
> 
> Not really "the same throughput".
> 
> Since the -b option specify the throughput at the *UDP* level, when:
>  -b is constant
>  -l is variable
> then the throughput on the wire is _variable_, because you need to
> send _more_ packets (and thus more headers) for the same amount of
> user (-b) data.  For low -l values, the throughput on the wire can
> even _exceed_ 100Mb/s, which is probably not what you want if you only
> have a 100Mb/s interface.
> 
> Seen the other way round, if you want to keep the wire rate constant
> while -l is variable, then you need an adjusted, variable -b. Sorry.

OK I understand now thanks (famous last words from someone no doubt).

So if I use:

iperf -u -c 172.18.1.1 -l 100B -b 90m -t 5

I am saying send 90Mbits of data and getting 41.4 Mbits of headers added 
on. This clearly does not work for a 100Mbit/s link!

My calculations:

Based on...

Ethernet header: 14 bytes
IP header: 20 bytes
UDP header: 8 bytes
UDP data: 1470 bytes  (your -l option)
Ethernet CRC FCS: 4 bytes

To achieve 90 Mbit/s of UDP data with 100 byte datagrams 112500 udp 
datagrams are sent per second. As the overhead is 46 bytes per datagram 
then the total overhead per second is 46 x 112500 = 5175000 MBytes = 
41400000 Mbits.

So I need to script a wrapper to set the correct -b option given a -l 
value so I allow for the overhead, assuming I want a constant wire rate.

Jim Mozley



Other Mailing lists | Author Index | Date Index | Subject Index | Thread Index