RE: Linux SCTP performance question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: o.evistel@xxxxxxx
> Sent: 13 July 2022 13:59
> I am using linux-sctp as transport for SIGTRAN M3UA on RHEL 8.4 and I am
> using sctp_sendmsg() and sctp_recvmsg() to send/receive.
> I would like to know if the use of sctp_sendv() and sctp_recvv() enhances performances ?

Every copy to/from a user buffer has a small (but measurable) cost.
So anything with an iov[] array is a bit slower than an equivalent
call that only has a single buffer.
This is measurable when comparing sendmsg() and sendto() on (say)
a UDP socket.
OTOH it is all probably noise unless you are trying to send/receive
'silly numbers' of messages.

Reducing the number of system calls may help.
But the cost of recvmmsg() checking for a second message is
significantly greater than using epoll().
So unless you actually expect lots of messages it probably
isn't worth using.

Assuming you have disabled Nagle, then the biggest performance
gain will be from setting MSG_MORE when you know you have another
message to send.
Without that pretty much every M3UA message ends up in its own
ethernet packet.

You don't mention why you think you have a performance issue in SCTP.
I think we got 40000 reflects/sec from a tcap application over M3UA
and SCTP last time I measured out stack.


Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)

[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     SCTP

  Powered by Linux