Justin, I posted a new version of the SceneGraph dictionaries patch on the ScienceSim wiki. It also includes a new dictionary for managing pending updates to the scene. Previously, this was a linear search to determine if an object needed to be updated, but now it's a dictionary lookup on UUID. With this patch, CPU utilization for 2000 updating objects has been reduced from ~150% to ~5%. It also allowed me to create 5x the qty of scripted updating objects with timers using approximately the original 150% cpu.
http://sciencesim.com/wiki/doku.php/opensim/performance_profiling#update_mar_19._2009 I think that someone more familiar with SceneGraph should take a look at my patch before it's committed. I filed a Mantis entry with the patch. http://opensimulator.org/mantis/view.php?id=3312 Dan lake Network Software Engineer Network Technology Lab Corporate Technology Group 503.712.8318 [email protected] -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Justin Clark-Casey Sent: Wednesday, March 18, 2009 1:34 PM To: [email protected] Subject: Re: [Opensim-dev] Profiling complex scenes Lake, Dan wrote: > Justin, > I filed a Mantis entry for the timer_dictionary.patch. > > http://opensimulator.org/mantis/view.php?id=3311 > Thanks very much Dan, committed as r8812. Regarding the localID SceneGraph dictionary, as you've seen in the comments we've pretty much known that the lack of one is pretty bad and your tests certainly confirm it. Even having one in not quite the right place would be better than not having it at all. Certainly for myself (and most probably for others), the priority of adding the other necessary bits to your initial starter patch in order to resolve this has been considerably bumped up. > ~Dan > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Justin Clark-Casey > Sent: Wednesday, March 18, 2009 8:29 AM > To: [email protected] > Subject: Re: [Opensim-dev] Profiling complex scenes > > Lake, Dan wrote: >> I work at Intel for Mic Bowman. He mentioned a while back that we are >> developing some workloads for understanding the scalability bottlenecks >> in OpenSim. I recently created a test which generates 2000 scripted >> objects which rotate and change color at random intervals. The workload >> consumed multiple CPU cores with only a single client viewer connected >> and the frame rate dropped to absolute zero with 10 clients connected. I >> was then able to reduce the CPU utilization by >80% with a few added >> lines of code in SceneGraph.cs and Timer.cs. If you are interested in a >> complete analysis of this workload, please visit the OpenSim profiling >> wiki page at >> http://sciencesim.com/wiki/doku.php/opensim/performance_profiling. I >> will continue to post interesting profiling results from our workloads >> and ideas about scaling OpenSim based on those results. Your comments or >> feedback are appreciated. > > Nice work, Dan, very useful stuff. > > Is the scenegraph_dictionary.patch code not already present in EntityManager > (albeit possibly unused, I've not looked > closely)? If not, would it be better incorporated into there and do you plan > on extending the patch into a complete > implementation (e.g. localID -> SOP mapping removal as well)? > > timer_dictionary.patch on the other hand looks like a complete > implementation. Is this a patch that could usefully be > applied in its current state? > >> >> >> >> >> >> *Dan lake* >> >> Network Software Engineer >> >> Network Technology Lab >> >> Corporate Technology Group >> >> ( 503.712.8318 >> >> * [email protected] >> >> >> >> >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Opensim-dev mailing list >> [email protected] >> https://lists.berlios.de/mailman/listinfo/opensim-dev > > -- justincc Justin Clark-Casey http://justincc.wordpress.com _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
