UDP output performance
Willem Jan Withagen
wjw at digiware.nl
Fri Sep 4 16:28:13 UTC 2009
First of: I've been googleing for about a day, but I'll take any suggestions
for more info.
What I'm trying to do is get as much 1440 byte UDP packets out of an em
device. And when tat works, get as much out of the 7 em devices that this
board has. :)
Currently I run into trouble at 250*174 = 43500 packets/sec.
How is the setup:
em0 gets 1 stream of 174 p/s which is ~ 2Mbit
this gets repeated to 250 streams
currently to 2 other servers, 125 streams each.
each on their own 1 Gbit port
This works uptil 123 streams each, going high gives packet loss.
So this is at about 500Mbit/sec on a 1Gbit port
And why do I know that the packetloss is not in the network?
Well there are no errors on
the output interface
the ports on the switch
the input ports on the receivers
the mib of the switch does not show any signs of dropped packets, or likes.
Also I can change the order of the queing in my repeater, and then the
packetloss moves to the host which is last the outputlist.
I tried raising the socketbuffer " sysctl -w net.inet.udp.maxdgram=184320"
in a few steps. But that did not bring anything.
So my guess is that I'm dropping packets somewhere from the output socket to
the wire.
BTW al stats in systat -vm are close to 0%.
What tunables are there to turn?
And if not tuneable, what parts of the code would be target for closer
inspection.
Any help is more than welcome
--WjW
More information about the freebsd-net
mailing list