Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Sep 2009 18:28:08 +0200
From:      Willem Jan Withagen <wjw@digiware.nl>
To:        net@freebsd.org
Subject:   UDP output performance
Message-ID:  <4AA14018.3010102@digiware.nl>

next in thread | raw e-mail | index | archive | help
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






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AA14018.3010102>