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.


_______________________________________________
Opensim-dev mailing list
[email protected]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

Reply via email to