our Sametime3D test server is running a number of regions, some of
them are rather on the monster side of things with gazillion scripts
(ah, those brainstorming boards). until recently our opensim startup
scripts would just grap a copy of mono and let it loose on
OpenSim.exe and things would be working just fine.
sometime over the course of the last 10–14 days opensim must have crossed some (invisible) line drawn in the sandy thread beaches of monomania, as all of a sudden we noticed that three-avatar-meetings were working fine (chat & movement work) but as soon as we were joined by the fourth avatar, things came to a grinding halt: no movement, no chat (voice was still working but that’s to be expected as SL voice is pretty much running independent most of the time from what’s going on inside the region).
after some nose cone polishing, some more befuddled staring at the log
files, and not finding anything immediately obvious, i went and
discussed this problem with fellow opensimers on our intranet IRC
opensim channel — sean had the good idea of mentioning the
MONO_THREADS_PER_CPU environment variable. checking
our startup script (just to make sure) showed that we were not setting
it — and, thus, it was at its default setting of 50…
…so we went ahead and added it, setting it to 500. why 500? good
question. and a question to which there is no clear answer: ask two
opensimers and you’ll likely get three different recommendations, i’ve
heard 75, 500, 1000, and also 2000. ralf haifisch recently tried to
obtain clarity on this issue but so far the exact
MONO_THREADS_PER_CPU remains a bit of magic.
and, guess what? that did the trick, it seems. we got over the three-avatar-limit.