Subject: Re: Network performance - iperf

From: Rick Jones <[email-masked]>
Date: Mon, 29 Mar 2010 09:57:33 -0700

Rick Jones wrote:
> I don't know how to set fixed socket buffer sizes in iperf, if you were 
> running netperf though I would suggest fixing the socket buffer sizes 
> with the test-specific -s (affects local) and -S (affects remote) options:
> 
> netperf -t TCP_STREAM -H <remote> -l 30 -- -s 32K -S 32K -m 32K
> 
> to test the hypothesis that the autotuning of the socket buffers/window 
> size is allowing the windows to grow in the larger memory cases beyond 
> what the TLB in your processor is comfortable with.

BTW, by default, netperf will allocate a "ring" of send buffers - the number 
allocated will be one more than the socket buffer size divided by the send size 
- so in the example above, there will be two 32KB buffers allocated in netperf's 
send ring.  A similar calculation may happen on the receive side.

That can be controlled via the global (before the "--") -W option.

     -W send,recv      Set the number of send,recv buffers

So, you might make the netperf command:

netperf -t TCP_STREAM -H <remote> -l 30 -W 1,1 -- -s 32K -S 32K -m 32K

happy benchmarking,

rick jones