[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