Avatar | Bug Fixes | Communication | Community | Glossary | Land & Sim | Multimedia | Navigation | Object | Video Tutorials | Viewer | Wiki | Misc
Lag is the colloquial name for slow reaction time when using Second Life. It is a symptom with a variety of causes. This article discusses the sources of lag, and what you can do to deal with it.
When you are logged in, there are a number of components which have to all work smoothly to minimize lag. These are your computer, the Internet connection, and the Linden Lab servers and internal network and databases. They will be discussed in order starting with your screen and working outward.
Second Life is both graphics-intensive, and uses a lot of bandwidth to communicate with the Linden Lab servers. Therefore your computer must be capable enough in order to run the Viewer program with minimal problems. See the System Requirements page for basic information.
Your monitor and graphics card or chip are what together produce the images you see on the screen. Graphics chips vary a great deal in speed. The slowest are "integrated graphics" which use part of the motherboard chipset and some of the main computer memory to do the graphics calculations. Much faster are discrete graphics cards which have their own memory.
The Graphics Card Chart gives a relative range of performance for Second Life, though your frame rate will vary depending on settings and where you are in the 3D world. A more up to date relative ranking of cards can be found at Tom's Hardware Guide. The lowest few groups on that list will not be able to run Second Life adequately.
The Second Life world is both large and "live" (constantly changing). So some very fast algorithms (ie BSP trees and pre-compiled maps) used in other 3D games can't be used here. Instead the data to create the view has to be downloaded and then transformed into the 3D view in real time. This means you will get a lower Frames-Per-Second (FPS) rate than you will get with most other games.
Not many people use Second Life for "fast twitch" combat-type activities, so somewhat lower frame rates are acceptable. To see what you are getting for frame rates, open the Statistics floating window using the top menu View > Statistics Bar item.
More information on graphics cards and issues can be found here:
- Graphics Cards - Information on selecting a card
- How to identify your graphics card
- Updating drivers - Having the latest drivers can improve performance a bit
The cache settings are found in the Preferences floating window, via top menu Edit > Preferences > Advanced tab. Reducing the cache size to a minimum (64 MB) can help reducing viewer-side lag on computers with slow hard-disk-drives. Also it can help to move the cache-directory to a different (physical) hard-drive. Be aware that lowering your cache-size possibly will boost your Second Life bandwidth usage, though.
The main controls for your graphics settings are found in the Preferences floating window, via top menu Edit > Preferences > Graphics tab. Use the main "Quality and Performance "slider to change multiple settings for faster or more detailed 3D view. Check the "Custom" box to see more detailed controls.
If you have a lower performance video card, the following settings will increase speed at the expense of quality. If you are getting good frame rates, you can set some of these higher:
Run Second Life in a window - Uncheck and select a lower resolution
Draw Distance - The single most important control that affects lag is how far from you the 3D world is visible. When this distance doubles, the amount of data that must be downloaded and displayed goes up 4-8 times (area or volume). So lowering this slider can make a big difference.
Shaders, Reflection Detail, Avatar Rendering: - All these checkboxes should be UNchecked.
Lighting Detail, Terrain Detail: - Set to Sun and Moon only, and Low, respectively.
Max Particle Count: - to 256
Mesh Detail: sliders all the way to the left
Hardware Options Button - Opens another window with more settings:
- Filtering: - Leave unchecked
- Antialiasing: - Disabled
- Enable VBO and FBO: - On
- Texture Memory (MB): - Normally set to same as your graphics card memory size
- Fog Distance: -This option is enabled only when the "Basic Shaders" option on the previous dialog was checked. If the Basic Shaders option is unchecked, this Fog Distance will be determined by top menu World > Environment Settings > Environment Editor > Advanced Sky button > Distance Multiplier.
- Texture Compression (also called 'lossy compression' in other viewers) - switching this setting can drastically change the graphical performance of the viewer. On slower graphics cards it can give a huge performance boost, as texture compression reduces the amount of video memory used by the graphics card. It can also reduce the performance on computers with some faster graphics cards, because the computer needs to do some extra calculations to compress the textures.
CPU and Memory
The Second Life Viewer program tends to use a lot of your computer resources. On a windows system, typing Ctrl-Alt-Del will open the "Windows Task Manager", whose performance tab can show you the current percentage utilization of your CPU. If you find out it is stuck at 100%, one option is to shut down any other programs you may have running. Another is to reduce the settings within the Viewer, or try an alternate viewer with lower requirements.
The program also uses several hundred MB of main memory. Once the real physical memory has been used up, most computers will swap data out to the hard drive temporarily. This is much slower. If you see the "Commit Charge" (actual memory used) is more than the amount of physical RAM installed in your computer, you have two options: shut down other programs and reduce settings in the SL Viewer, or add more memory to your computer.
As a guide, 512MB would be barely usable, 768MB is usable on the lowest settings, 1 GB is adequate, and more than that is good, especially if you want to run other programs at the same time.
Second Life requires constant communication with the Linden Lab servers. Data speed is highest when you first arrive at a new location, are moving around quickly, or in an area where lots of people are coming and going. All of these require sending you new data so you can see it all. A connection speed of at least 500 kilobits per seconds (kbps) is needed to run Second Life adequately.
If you are on a wireless router, or entirely wireless connection you may not be getting these speeds. Dialup is definitely too slow for using Second Life. Once your surroundings have downloaded, your bandwidth will stabilize at anywhere from 4 to 50 kilobits per second.
Paradoxically, a connection speed that is too high can cause problems. Your computer has to do something with the new data as it comes in. If it is too busy, it can miss data packets, which then get re-sent. This makes the problem worse. The "Statistics Bar" shows packet loss as a percentage. If it anything above 0% on a steady basis, go to top menu Edit > Preferences > Network > Maximum Bandwidth and try lowering the value to reduce packet loss. On the other hand, if you have a fast connection and can handle it, you can increase the bandwidth to download data faster.
On the same tab, Disk Cache Size: controls how much data sent from the servers is saved on your hard drive. This includes textures, animations, inventory list, sound clips, and other items. A higher setting will keep from having to repeat downloading items again when you see them.
Streaming audio and video media, and voice chat, all increase bandwidth required. Use the top menu Edit > Preferences > Audio & Video > Streaming Preferences: to turn off streaming. Use Edit > Preferences > Voice Chat > Enable voice chat to turn it off. Voice chat also uses an accessory program from Vivox to run, and turning it off will also lower CPU use.
Server Side Lag
The Linden Lab servers have to both keep track of everything happening in a map region, and send that information to all the users who can see the region. If they have too much to do, they will slow down the simulator frame rate so as to not lose data. If too much communication is required to fetch data about objects and send them to all the users, it can become backlogged. Since lag can have multiple causes, the Statistics floating window can tell you when it is server-side lag that is the cause.
Things that make the server busier include:
- There are many physical (physics-enabled) objects in the region
- More users in or can see the region, since it has to send data to everyone who is
- More object-embedded software scripts running in the region
- Lots of changing textures
- Wikipedia: Lag
- Anatomy of Lag Article
- Packet Loss
- related Old Knowledge Base articles: