Jason:

This all looks familiar to this old hand, but it's been a while. So
let me ask some dumb questions and get the solution explicit. Your
suggestion is to put those configuration options in, say,
/etc/rc.local with the caveats below?

1. sysctl -w before each option
2. tuned to the actual amount of RAM free and data rate we expect

Since this is a kernel-wide option, does this also do the job of
increasing the UDP receive RAM buffer size in a Python client? Or is
there something I should also be doing in my actual data receiving
program, i.e. socket.setsockopt()?

Tom

On Mon, Jun 20, 2011 at 12:01 PM, Jason Manley <[email protected]> wrote:
> PAPER do this very thing with a 48-port Netgear GS748TAU. I usually use 
> packets with payload of 4096 or 8192 bytes, along with a small header. Up to 
> 9kB should be fine on just about any 1GbE switch these days.
>
> Remember that you can't have jumbo packets on 100mbps Ethernet. So if any of 
> the traffic routes through a 100mbps link, there will be fragmentation and 
> it'll slaughter your throughput.
>
> Remember that some ROACH boards' PHYs don't work at 1000mbps.
>
> Remember to tune your Linux network stack for lossless UDP packets. Assuming 
> you have the RAM to spare...
> net.core.netdev_max_backlog = 2000
> net.core.wmem_max       = 838860800
> net.core.rmem_max       = 838860800
> net.core.rmem_default   = 819260800
> net.ipv4.udp_rmem_min   = 8192000
>
>
> Jason
>
> On 20 Jun 2011, at 19:51, John Ford wrote:
>
>> Hi Tom.
>>
>> Most newer switches support jumbo frames, and most support ~9000 byte
>> packets.  I say most because you just have to look at the feature set in
>> the data sheet.  Some of the inexpensive Netgear 5,8, and 16 port switches
>> support a packet size of from 9000 to 10240.  Another problem might be the
>> amount of buffer space.  Large packets need more buffer space, so you have
>> to make sure that there is enough to avoid dropped packets, particularly
>> since your ROACH boards might be operating in synchrony, with packets from
>> all 16 coming in at once to be forwarded to one host.  The netgear $160.00
>> GS116 has 512K bytes per port, which seems like plenty...
>>
>> If you try to toss these packets over the internet or through routers, you
>> may be sunk.  But you should be able to do fine if you control the
>> switches and host adapters.
>>
>> We're interested in doing this same thing with some of our lower-bandwidth
>> spectrometer projects.  I'd like to hear more about your project as it
>> gets finished!
>>
>> John
>>
>>> Casper folks:
>>>
>>> I've finally started working in earnest on a PPC-side C server that
>>> reads out FPGA/PPC shared memory and sends out UDP packets over the
>>> 1Gbe interface. The idea being that our data rate is so much below
>>> 10GBe (about 1 megabyte per second per board) that it did not merit
>>> investing in the 10Gbe switches necessary to readout 10-20 boards at a
>>> time. Also, the experiment is expected to be running 5 years from now
>>> and these switches are already hard to find and expensive.
>>>
>>> I've got this scheme basically working and want to ask what I hope are
>>> a couple reasonably simple questions that people out there may have
>>> experience with. What is the typical largest UDP packet size that will
>>> be passed by standard network hardware? Does anyone out there have
>>> experience buying a 1Gbe switch with ~20 ports that has a good
>>> configuration interface to basically ensure 100% passage of ~6kB UDP
>>> packets?
>>>
>>> My impression from CASPER Memo 21 is that a typical router will pass
>>> UDP packets up to 9kb (maybe 8192?). My experience while writing the C
>>> server is that packets above this size sometimes get through the LAN
>>> but most times not. I have managed to divide our data into packets of
>>> 6208 bytes in size and they seem to get through every time. But I want
>>> to make sure that the UDP packets really, truly get through every
>>> time, not 99.9%.
>>>
>>> I understand that the UDP standard is not designed around ensuring
>>> 100% delivery of information. I am mostly concerned that routers can
>>> prioritize certain kinds of traffic over others. I don't want the
>>> wrong choice of router to introduce problems.
>>>
>>> The data will be passing through a private LAN comprised of a standard
>>> linux machine receiving UDP packets from approximately 16 ROACH
>>> boards. So we can buy a router that is very appropriate to this task
>>> rather than generic network conditions. i.e. turn off anti-virus
>>> scanning, firewall, etc, etc.
>>>
>>> My testing thus far has been across a LAN shared with many computers at
>>> Caltech.
>>>
>>> Tom
>>>
>>
>>
>>
>
>

Reply via email to