Linux SCTP: what kind of performance should I expect from netperf?

Dave Taht dave.taht at gmail.com
Tue Mar 18 12:03:01 EDT 2014


On Tue, Mar 18, 2014 at 11:49 AM, Daniel Borkmann <dborkman at redhat.com> wrote:
> On 03/18/2014 04:16 PM, Jesper Dangaard Brouer wrote:
>>
>>
>> Hi Daniel,
>>
>> Can you give some input on this thread?
>>
>> On Tue, 18 Mar 2014 10:53:40 -0400 Dave Taht <dave.taht at gmail.com> wrote:
>>
>>> I was curious about sctp's performance characteristics on
>>> AQM'd systems... so
>>> I built netperf with sctp support, and ran a couple tests on
>>> kernel 3.11...
>>>
>>> +1: SCTP appears to work over IPv6
>>> -1: Throughput is terrible
>
>
> Yes, performance sucks so far (it's a known problem) and
> we need to work on it ... ;-)


I want to make clear that I don't know diddly about SCTP. I DO grok
TCP fairly well...

I got interested in sctp again after hearing a proposal to make
it easier to fq chunks.

> I presume one reason here could be as well that you need to
> do crc32c checksumming on software (what does perf say?).

Well what I think I see is sctp not opening up a window for packets
in flight (as tcp would with cwnd), and basically ping-ponging
sends and acks over the 14ms RTT:

capture here

http://snapon.lab.bufferbloat.net/~d/sctp/

One of my concerns with all the tcp optimization work over the last 3
years was that it might have broken other protocols and stuff that
plugged into the congestion control api for Linux. For example, my
ledbat kernel module behaves similarly, never getting out of slow
start.

But not having a test for sctp in general (I used netperf, is there a better?).

So if SCTP not ramping up is a known problem I can go back to scratching
my head at the ledbat code.

I WAS quite delighted to see SCTP "just work" over ipv6. :)

>
>
>>> d at nuc:~/git/netperf$ netperf -6 -H snapon.lab.bufferbloat.net -t
>>> SCTP_STREAM_MANY
>>> SCTP 1-TO-MANY STREAM TEST from ::0 (::) port 0 AF_INET6 to
>>> snapon.lab.bufferbloat.net () port 0 AF_INET6 : demo
>>> Recv   Send    Send
>>> Socket Socket  Message  Elapsed
>>> Size   Size    Size     Time     Throughput
>>> bytes  bytes   bytes    secs.    10^6bits/sec
>>>
>>> 212992 212992   4096    10.00       0.31
>>> d at nuc:~/git/netperf$ netperf -6 -H snapon.lab.bufferbloat.net -t
>>> TCP_MAERTS
>>> MIGRATED TCP MAERTS TEST from ::0 (::) port 0 AF_INET6 to
>>> snapon.lab.bufferbloat.net () port 0 AF_INET6 : demo
>>> Recv   Send    Send
>>> Socket Socket  Message  Elapsed
>>> Size   Size    Size     Time     Throughput
>>> bytes  bytes   bytes    secs.    10^6bits/sec
>>>
>>>   87380  16384  16384    10.00       7.65



-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html



More information about the Bloat-devel mailing list