[netperf-talk] netperf over low bandwidth network

Rick Jones rick.jones2 at hp.com
Mon Apr 19 10:15:28 PDT 2010


Frank Schuster wrote:
> Hello,
> 
> I tried to use netperf 2.4.5 tcp test over mobile network (gsm/edge) with
> small bandwidth.
> 
> I use netperf -H ip_address -l 60 -- -m 1448.
> 
> But I get every time system interrupt.
> 
> I took a look in wireshark and all works really fine, but if the connection
> should be close fin/fin-ack/ack. Then there comes hundreds of TCP-RST
> messages and then I get only the message in netperf. System interrupt.
> 
> I use ubuntu 9.10 with kernel 2.6.33.
> 
> What I do wrong?
> 
> Regards
> 
> Frank
> 
> PS:
> 
> normal internet browsing and file transfers are possible. Only netperf shows
> this behaviour...

I'd suggest some system call traces.  Might also check if the pad timer is going 
on the netserver side - to avoid blocking on a recv() "forever" the netserver 
side may be running a timer with a length of the test time plus PAD_TIME - the 
ass-u-me-ption is that netperf would always close the connection before that 
expired, but if netperf died, we'd not remain stuck.  If the network is slow 
enough, I could see where the linux auto-tuning could allow the socket buffers 
to grow to the point that it would take longer than PAD_TIME to drain the 
socket, so the doomsday timer expires on netserver, the data connection is 
implicitly close()ed and then the arriving stream of segments triggers the RSTs 
you see.

One alternative would be to set SO_KEEPALIVE and "hope."  Another would be to 
set explicit socket buffer sizes via -s and -S to limit how much backlog is created.

happy benchmarking,

rick jones



More information about the netperf-talk mailing list