Nevia Archipelago Performance Report
>Read about lag and what you can do about it below:
- Use scripts that turn off when not in use, or when no avatars are nearby.
- Turn off particle effects and moving objects when not in use.
- Avoid temporary rezzers unless proven to be low-lag.
- Find alternatives for the regions's most laggy scripts.
- Change your settings to reduce client-side lag.
What is Lag?
There is a tremendous amount of processing that must be done many times a second to produce your SL experience. The computational work load is divided between the Linden Lab server that supports Beylix (the "simulator", or "server-side") and your local computer ("client-side").
In general, the server side computes the size, location, and movements of objects and avatars, and executes all scripts. The server sends just the results of its calculations to the client a few times a second. If the simulator can't perform all the computations it needs to do, all avatars and objects in the entire region will move in slow motion and scripts will execute slowly, a condition called "time dilation.".
The client side does all the computations needed to draw particles, textures, flexi-prim movements, and animations. If the client can't perform its job fast enough, the screen will be not be redrawn as frequently and the scene will appear choppy.
The Lindens have more information about improving sim performance in the SL wiki (requires login).
Using the Statistics Bar
The Statistics Bar is a handy way to see measurements of performance. For example, you can measure the effect of various Preference settings by monitoring the client-side frame rate measured in frames per second (fps).
Open the Statistics Bar (Ctrl-Shift-1 or View->Statistics Bar). To expand a section, click on the section name. For example, to see the client-side statistics, you should open the Basic section (at the top) by clicking on the word "Basic". The first line, called FPS (frames per second), shows the rate at which your local client is processing its share of the work load. The higher the number, the better.
Another section of the Statistics Bar that you might find useful is the Simulator section, which shows you the server-side statistics. In there, especially look at the "Time (ms)" subsection, and then in there, look at the "Total Frame Time." (This shows you the server-side statistics.)
The Lindens have a section on their website with a lot more detail about the statistics bar.
The Three Most Important Settings to Reduce Client-Side Lag
Your local computer does the work of processing textures, particles, flexi-prims, animations, sky, water, and weather effects. Open the Statistics Bar and expand the Basic section to see your client FPS. The green vertical bar is showing your fps.
For comparison, when on the ground in a normal situation and you are not using WindLight with atmospheric shaders turned on, then most people can expect a client frame rate of 10-15 fps. If WindLight with the atmospheric shaders are turned on, then this could be more like 5-10 fps. If you zoom very close to an object or fly high enough that you're only seeing the sky, then you could expect something around 20 fps. (The Lindens have published a great chart of the client-side fps that you should expect based on your video card.)
If you want to increase your fps, experiment by changing your preferences and watch the Statistics Bar. When tuning your preferences, first stand or sit in one place and wait until the rate settles down (due to texture loading), and don't change the view while changing settings. You can improve your client frame rate with these settings in Preferences (Ctrl-P, or Edit->Preferences):
- Change Draw Distance. (On the Graphics Tab) Keep this set to the lowest acceptable value, and then raise it temporarily only when you need to see objects farther away.
- Enable VBO (vertex buffer objects). (Click the "Hardware Options" button on the Graphics Tab (on older clients it's on the Advanced Graphics tab)). VBO is an efficiency-feature used by some graphics cards. Disable VBO only if your graphics hardware has problems displaying everything correctly.
- Disable Atmospheric Shaders. If you are using a viewer with WindLight capability, disable Atmospheric Shaders for most situations. Enable that setting when you prefer the pretty effects at the expense of slower client performance, such as when taking snapshots. The settings for this feature can be found by clicking on the "custom" checkbox on the Graphics tab box. Note that all of the "custom" graphics settings affect your client frame rate. Experiment!
There are lots of other settings in the Preferences that you can experiment with--but these are the ones that will make the most difference.
|The Most Important Factors to Reduce Server-Side Lag|
All residents can monitor the performance of the server that runs the sim by looking at the Statistics Bar, expanding the "Simulator" section, and then expanding the subsection named "Time (ms)," which shows you the Total Frame Time.
If the Total Frame Time averages 22.2 milliseconds or less, it means that the sim is able to do all its processing fast enough so that there will be no time dilation. (If you expand the "Total Frame Time", you will see a real-time graph of the total frame time which is handy to watch as you make changes to your preferences.)
Beneath the Total Frame Time is a breakdown of what the server is doing in that time: network access, enabling physics, etc.
The part of the Total Frame Time that we all have the most control over, is the "Script Time." This shows how much of that Total Frame Time is being used up by scripts. This includes ALL scripts: animations, doors, window blinds, snow machines, hug attachments, vehicles, etc. At the time of this writing, there were about 4000 different scripts running on Beylix!
Here are some ways you can help reduce simulator load:
- Avoid temporary rezzers that create many temporary objects, unless proven to be low-lag.
- Look at the estate script performance report and find alternatives for your scripts that appear near the top of the list, especially any scripts (or set of related scripts) that shows a script time of 0.1 milliseconds or more. The server has only 22.2 milliseconds per frame to do ALL of the server-side processing, so each millisecond spent on scripts uses up almost 5% of the server's total processing power. (If you would like to see a current script performance report, please ask one of the estate managers to send one to you.)
- Use scripts that automatically shut off when not needed, or that turn themselves off when no avatars are nearby.
- Temporarily disable scripts you don't require to be running by right-click selecting the object the script is in and clicking Tools->Stop All Scripts in the Selection, then re-enable them later when they are needed.
- Limit the use of moving objects, or turn off their movements when not needed, or use scripts that disable moving objects when no avatars are nearby to enjoy them. The simulator has to update all object movements for the entire region, even if no avatars are in viewing range.