[Opensim-dev] UDP async performance

McGregor, Donald (Don) (CIV) mcgredo at nps.edu
Mon Mar 16 16:54:45 UTC 2015


The first step is to benchmark with iperf or something similar. 160K packets per second is a fairly stiff load. It’s often not so much
the bandwidth in these cases as the time necessary for the OS to process the packet. If a new packet comes in before
the OS has finished processing the old one it will quickly go into a death spiral. That’s the typical profile for
UDP at max load; it will be going along fine, then as load increases it will drop a few packets, then drop
off a cliff. Take a look at CPU load while under load. With modern CPUs you probably won’t max out CPU
when receiving a lot of packets but you should see it go up.

You might also monkey with the UDP buffer size, particularly if you’ve got a fast network. If you’re on
a 10GB network I’d probably set to to 2 MB.

https://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php


I am on linux 64 bit, so I had a coworker write his own version of this test using Visual Studio 2013 on Windows (no code sharing), and he saw the same behavior:  c# async suffering massive packet loss while c# sync is keeping up easily.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20150316/2ec737c6/attachment-0001.html>


More information about the Opensim-dev mailing list