On Friday 11 June 2010, Andrei Pelinescu-Onciul wrote:
[..]
So it might be a good idea to evaluate how big is
the actual improvement
with raw sockets over the multiple sockets, if its make sense to from a
maintenance POV to go with this solution (not sure how complicated the
actual implementation will be..).
We cannot go with multiple udp sockets because then we will have
multiple source ports, which is something one does not want for a sip
proxy (think natted UACs).
A possible workaround is to use multiple ports and SRV records to
balance the traffic on them, but IMHO the raw socket should solve the
problem in a simpler way (from the sr.cfg point of view). The only
problem is finding the right MTU, but I guess for most setups (that
don't use multiple interfaces with different MTUs) a sr.cfg configurable
mtu would do (at least for the initial version).
Anyway from the coding point of view I'm almost ready, the testing will
be more difficult.
Hi Andrei,
thanks for the clarification. I completely forgot about the problem with the
multiple source ports.. Just as a side note, maybe also interesting in this
problem space are the new RFS/RPS implementations in upcoming 2.6.35:
http://lwn.net/Articles/382428/
http://lwn.net/Articles/362339/
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdi…
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdi…
even if in the patches they mentioned mainly TCP based workloads, the gains
looks promising.
Regards,
Henning