[netperf-talk] Issues using parallel sessions of netperf

Rick Jones rick.jones2 at hp.com
Wed Apr 13 15:32:42 PDT 2011


> > > >> Here's a sample output:
> > > >> bin/netperf -l30 -P0 -fk -t TCP_MAERTS -p14536 143.215.129.122
> > > >> bin/netperf -l30 -P0 -fk -t TCP_MAERTS -p14536 143.215.129.122
> > > >> bin/netperf -l30 -P0 -fk -t TCP_MAERTS -p14536 143.215.129.122
> 
> I actually think your problem is because you're specifying port number,
> there are some bugs in that area AFAIR.

The port number being specified is for the control port, which as near
as I can recall has been fairly solid going back quite a ways.

> I assume on the above that you forgot the -H option?

Indeed he did.  Thanks for catching that. Not entirely sure what that
will mean.  If it were not for the -P 0 then the test destination would
appear in the banner for a sanity check.

BTW, that raises a question that has been simmering in the back of my
mind.  Presently, if no-one uses a -L option, the source addressing for
the test will show IN_ADDRANY etc.  I've been wondering if netperf
should burn the CPU cycles to make a getsockname() call immediately
after the connect() call on the data connection and show that instead,
or just leave things as they are.

> maybe try a different test to fill the link?
> cd netperf-source
> ./configure --enable-burst
> make -j
> make install
> 
> this will do large receive bursts with 1 byte acks, much like normal
> stream test.

I like it when people come-up with ways to (ab)use the burst mode
functionality :)

It will be "much like normal" for some definition of much :)  Yes, the
data flow back "the other way" is tiny, but depending on the ack policy
of the stack, the sizes of request/response, and whether anyone is using
LRO/GRO, there will be (many) more "ACKs" with one byte of data with the
TCP_RR test then there would be standalone ACKs in the TCP_MAERTS test.
The throughput difference over lossless, full-duplex links is probably
epsilon most of the time, but the CPU utilization/service demand will be
higher for the RR test.

> [root at localhost ~]# netperf -t TCP_RR -l 10 -fk -H 10.23.23.181 -- -b10 -r1,64K
> TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.23.23.181 (10.23.23.181) port 0 AF_INET : first burst 10
> Local /Remote
> Socket Size   Request  Resp.   Elapsed  
> Send   Recv   Size     Size    Time     Throughput 
> bytes  Bytes  bytes    bytes   secs.    10^3bits/sec   
> 
> 16384  87380  1        65536   10.00    941194.07   
> 16384  87380 

The other side effect of using the burst-mode RR is it will effectively
put a cap on Linux's autotuning - the RR test above will never have more
than 640K of data outstanding at one time, but the TCP_MAERTS test
could, if there were no test-specific -s and/or -S options specified
have as much as 4MB outstanding at one time thanks to the autotuning.

happy benchmarking,

rick jones



More information about the netperf-talk mailing list