diff options
author | Justin Clarke Casey | 2008-11-05 19:23:59 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-11-05 19:23:59 +0000 |
commit | fc36d7fdf2bf012e6ac60f62875a4a5973af4970 (patch) | |
tree | 460b98adcd43e3983ab32f82518a2b5ee1d9577c | |
parent | Moved a couple of more configuration fields to ConfigSettings (diff) | |
download | opensim-SC_OLD-fc36d7fdf2bf012e6ac60f62875a4a5973af4970.zip opensim-SC_OLD-fc36d7fdf2bf012e6ac60f62875a4a5973af4970.tar.gz opensim-SC_OLD-fc36d7fdf2bf012e6ac60f62875a4a5973af4970.tar.bz2 opensim-SC_OLD-fc36d7fdf2bf012e6ac60f62875a4a5973af4970.tar.xz |
* Set default client throttle multiplier to 2 (old value was effectively 8). See OpenSim.ini.example for details as to what this means
* Really this should be 1, but I think that this would be too slow compared to a Second Life server until we improve our ability to send textures of variable quality
* This may improve one aspect of sim performance where there are many avatars. However, there are still other performance problems that are unrelated to this change
* Value may be further tuned
* Removed temporary decals since the multipler setting will stick around now
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 2 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 23 |
4 files changed, 26 insertions, 11 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs index 317d852..9aa27ec 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs | |||
@@ -127,7 +127,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
127 | 127 | ||
128 | TotalThrottle | 128 | TotalThrottle |
129 | = new LLPacketThrottle( | 129 | = new LLPacketThrottle( |
130 | totalThrottleSettings.Min, totalThrottleSettings.Max, totalThrottleSettings.Current, userSettings.ClientThrottleMultipler); | 130 | totalThrottleSettings.Min, totalThrottleSettings.Max, totalThrottleSettings.Current, |
131 | userSettings.ClientThrottleMultipler); | ||
131 | 132 | ||
132 | throttleTimer = new Timer((int) (throttletimems/throttleTimeDivisor)); | 133 | throttleTimer = new Timer((int) (throttletimems/throttleTimeDivisor)); |
133 | throttleTimer.Elapsed += new ElapsedEventHandler(ThrottleTimerElapsed); | 134 | throttleTimer.Elapsed += new ElapsedEventHandler(ThrottleTimerElapsed); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs index 2c67d63..305a984 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs | |||
@@ -36,7 +36,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
36 | private int m_currentBitsSent; | 36 | private int m_currentBitsSent; |
37 | 37 | ||
38 | /// <value> | 38 | /// <value> |
39 | /// Temporary field | 39 | /// Value with which to multiply all the throttle fields |
40 | /// </value> | 40 | /// </value> |
41 | private float m_throttleMultiplier; | 41 | private float m_throttleMultiplier; |
42 | 42 | ||
@@ -47,8 +47,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
47 | /// <param name="max"></param> | 47 | /// <param name="max"></param> |
48 | /// <param name="throttle"></param> | 48 | /// <param name="throttle"></param> |
49 | /// <param name="throttleMultiplier"> | 49 | /// <param name="throttleMultiplier"> |
50 | /// A temporary parameter that's ends up multiplying all throttle settings. This only exists as a path to | 50 | /// A parameter that's ends up multiplying all throttle settings. An alternative solution would have been |
51 | /// using real throttle values instead of the *8 multipler that we had been using (bytes instead of btis) | 51 | /// to multiply all the parameters by this before giving them to the constructor. But doing it this way |
52 | /// represents the fact that the multiplier is a hack that pumps data to clients much faster than the actual | ||
53 | /// settings that we are given. | ||
52 | /// </param> | 54 | /// </param> |
53 | public LLPacketThrottle(int min, int max, int throttle, float throttleMultiplier) | 55 | public LLPacketThrottle(int min, int max, int throttle, float throttleMultiplier) |
54 | { | 56 | { |
@@ -81,7 +83,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
81 | return m_currentBitsSent; | 83 | return m_currentBitsSent; |
82 | } | 84 | } |
83 | 85 | ||
84 | // Properties | ||
85 | public int Max | 86 | public int Max |
86 | { | 87 | { |
87 | get { return m_maxAllowableThrottle; } | 88 | get { return m_maxAllowableThrottle; } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 1779d54..f777e0e 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -149,7 +149,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
149 | AssetCache assetCache, AgentCircuitManager circuitManager) | 149 | AssetCache assetCache, AgentCircuitManager circuitManager) |
150 | { | 150 | { |
151 | ClientStackUserSettings userSettings = new ClientStackUserSettings(); | 151 | ClientStackUserSettings userSettings = new ClientStackUserSettings(); |
152 | userSettings.ClientThrottleMultipler = 8; | 152 | userSettings.ClientThrottleMultipler = 2; // default. TODO: Should be a constant somewhere |
153 | 153 | ||
154 | IConfig config = configSource.Configs["ClientStack.LindenUDP"]; | 154 | IConfig config = configSource.Configs["ClientStack.LindenUDP"]; |
155 | 155 | ||
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index c8d1d5d..8c9ee41 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -205,11 +205,24 @@ inventory_server_url = "http://127.0.0.1:8004" | |||
205 | messaging_server_url = "http://127.0.0.1:8006" | 205 | messaging_server_url = "http://127.0.0.1:8006" |
206 | 206 | ||
207 | [ClientStack.LindenUDP] | 207 | [ClientStack.LindenUDP] |
208 | ; Adjust the multiplier applied to all client throttles | 208 | ; This is the multiplier applied to all client throttles for outgoing UDP network data |
209 | ; This setting only exists because we're probably over throttling by a factor of 8. Setting this to | 209 | ; If it is set to 1, then we obey the throttle settings as given to us by the client. If it is set to 3, for example, then we |
210 | ; 1 uses the real throttle values, but this may be revealing other bugs, so is currently included as test setting | 210 | ; multiply that setting by 3 (e.g. if the client gives us a setting of 250 kilobits per second then we |
211 | ; You probably don't want to change this. | 211 | ; will actually push down data at a maximum rate of 750 kilobits per second). |
212 | client_throttle_multiplier = 8; | 212 | ; |
213 | ; In principle, setting a multiplier greater than 1 will allow data to be pushed down to a client much faster | ||
214 | ; than its UI allows the setting to go. This may be okay in some situations, such as standalone OpenSim | ||
215 | ; applications on a LAN. However, the greater the multipler, the higher the risk of packet drop, resulting | ||
216 | ; in symptoms such as missing terrain or objects. A much better solution is to change the client UI to allow | ||
217 | ; higher network bandwidth settings directly, though this isn't always possible. | ||
218 | ; | ||
219 | ; Currently this setting is 2 by default because we currently send much more texture data than is strictly | ||
220 | ; necessary. A setting of 1 could result in slow texture transfer. This will be fixed when the transfer | ||
221 | ; of textures at different levels of quality is improved. | ||
222 | ; | ||
223 | ; Pre r7113, this setting was not exposed but was effectively 8. You may want to try this if you encounter | ||
224 | ; unexpected difficulties | ||
225 | client_throttle_multiplier = 2; | ||
213 | 226 | ||
214 | [Chat] | 227 | [Chat] |
215 | whisper_distance = 10 | 228 | whisper_distance = 10 |