Optimizing and Improving Opensimulator Performance
Optimizing and Improving Opensimulator Performance
Optimizing and Improving Opensimulator Performance
OpenSimulator Performance
Justin Clark-Casey
OpenSimulator core developer
In this presentation
Potential bottlenecks
The Conference
Assets, inventory.
Grid Components
Viewer
Simulator
HTTP
UDP
HTTP
Grid Services
HTTP
Simulator
HTTP
HTTP
Public
Private
Hypergrid Components
Viewer
Home Simulator
UDP
UDP
Foreign Simulator
Home Services
Foreign Services
Bottlenecks
Network
Storage
Software
Simulator
Grid Services
Viewer/Client
Network Bottlenecks
pingtest.net
Processing Bottlenecks
Viewer
Simulator
Storage Bottlenecks
Services
Simulator
Software Bottlenecks
Viewer
Services
Simulator
Measuring
Measuring
Simulator (root)# show stats all
clientstack.keynote1.ClientLogoutsDueToNoReceives : 0
clientstack.keynote1.InboxPacketsCount : 0, 0/s, 0/s
clientstack.keynote1.IncomingPacketAsyncRequestsWaiting : 0
entitytransfer.keynote1.InterRegionTeleportAttempts : 0
entitytransfer.keynote1.InterRegionTeleportCancels : 0
entitytransfer.keynote1.InterRegionTeleportFailures : 0
httpserver.5000.HTTPRequestsServed : 0 requests, 0 requests/s, 0 requests/s
scene.keynote1.RootAgents : 0 avatars
scene.keynote1.ScriptLines : 0 lines/sec
server.memory.ProcessMemory : 143.59 MB
server.network.HTTPRequestsMade : 22 requests, 0 requests/s, 0 requests/s
server.processor.CPUPercent : 0 percent
Graphing
Primitive graphs
Testing
General network
Services
Testing
Simulator
pCampbot [PCAMPBOT]
The Conference
Considerations
Fault tolerance
Code maturity
The Process
Physics
Configuration tweaks
[InterestManagement] in OpenSim.ini
RootRotationUpdateTolerance = 0.55
ChildReprioritizationDistance = 99999
ChildTerseUpdatePeriod = 4
Configuration tweaks
[ClientStack.LindenUDP]
enable_adaptive_throttles = false
scene_throttle_max_bps = 50000000
client_throttle_max_bps = 125000
1 mbit/s
Software changes
Pure performance
Perceived performance
Sequential processing.
Appearance/Attachments
Some incoming/outgoing UDP handling.
Complex need to avoid one task blocking another.
Future Directions
Varregions
Thankyou!
Justin Clark-Casey
OSVW Consulting
http://justincc.org
http://twitter.com/justincc
justincc@justincc.org
(please see next slides for references)
References
[Direct Service]
http://opensimulator.org/wiki/Direct_Service_Requests
[Graphing]
https://github.com/justincc/opensimulator-tools/tree/master/analysis/opensimulator-stats-analyzer
[iperf]
http://software.es.net/iperf/
[PCampbot]
http://opensimulator.org/wiki/PCampBot
References
[Performance]
http://opensimulator.org/wiki/Performance
[Siege]
http://www.joedog.org/siege-home/
[SRAS]
https://github.com/coyled/sras
[Stats]
http://opensimulator.org/wiki/Show_stats
[Texture Load Test]
https://github.com/justincc/opensimulator-tools/tree/master/test/texture-load-test
Q&A