[netperf-talk] SCTP Benchmark significantly slow

Rick Jones rick.jones2 at hp.com
Fri Jun 1 09:53:02 PDT 2007


Vlad Yasevich wrote:
> Thanks to rick for forwarding this.

Thanks Vlad for replying.  Since Vlad may not be subscribed to 
netperf-talk, I'll send this reply with all his text so it will enter 
the archives :)

rick jones

> 
> Rick Jones wrote:
> 
>>Chris Lydick wrote:
>>
>>>The only issue is that for some reason, I am unable to get any "decent"
>>>results using the SCTP_STREAM test within Netperf. Here are some of my
>>>findings:
>>>
>>>Using a 1Gbps Ethernet line between two nodes, I receive nearly
>>>987Mb/sec through the TCP_STREAM (this seems very accurate),
>>
>>If you have JumboFrames enabled at least.
>>
>>
>>>while on
>>>the SCTP_STREAM side of things, I am only receiving at most 2.4 Mb/sec.
>>>
> 
> 
> That's close to what I can get.  I can squeeze out ~3mb/sec with the latest
> kernel sources.
> 
> SCTP is frightfully inefficient and has not gone through a full performance
> analysis.  The biggest roadblock is the use memory copies.  There are at
> least 2 memory copies for every data message.  If the message is bigger then
> the mtu, there will be more memory copies.
> 
> Second, the receive buffer management is crufty and prevents us from fully utilizing
> our congestion window.  This is being addressed though.
> 
> There are other areas as well.
> 
> 
>>>I notice similar behavior when using one machine as both the source and
>>>destination of the test.
>>>
> 
> 
> You should get better results over loopback since we don't do checksumming there.
> 
> 
>>>I am using two Linux (Ubuntu 7.04) machines for the benchmarking,
>>>equipped with libsctp1 (1.0.6.dfsg-4), and libsctp-dev (1.0.6.dfsg-4)
>>>libraries.
> 
> 
> This is fine, but the kernel might not have all the latest bits.  Don't know
> how well Ubuntu tracks upstream patches.
> 
> 
>>>I have also tried adjusting the buffers through the command line
>>>prompts, but they have had little effect.
>>>
>>>Do you have any suggestions?
> 
> 
> Max out the buffers in the kernel ([r/w]mem_default and [r/w]mem_max).
> The _max thresholds limit what the user can specify.
> 
> 
>>Some additional specifics wrt parameters being passed on the netperf
>>command line would I suspect help :)
>>
>>Other things which are often useful include:
>>
>>*) CPU utilization, while netperf doesn't report it, per-CPU util might
>>be nice too if this is between MP systems.  Most GbE NICs can do CKO and
>>TSO, which will help TCP but will do zip for SCTP.
>>
>>*) Checking ethtool stats for losses
>>
>>*) Checking netstat stats for losses (I'm ass-u-me-ing there are sctp
>>stats)
> 
> 
> What Rick said.
> 
> -vlad



More information about the netperf-talk mailing list