aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-11-05 19:23:59 +0000
committerJustin Clarke Casey2008-11-05 19:23:59 +0000
commitfc36d7fdf2bf012e6ac60f62875a4a5973af4970 (patch)
tree460b98adcd43e3983ab32f82518a2b5ee1d9577c
parentMoved a couple of more configuration fields to ConfigSettings (diff)
downloadopensim-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.cs3
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs9
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs2
-rw-r--r--bin/OpenSim.ini.example23
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"
205messaging_server_url = "http://127.0.0.1:8006" 205messaging_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).
212client_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
225client_throttle_multiplier = 2;
213 226
214[Chat] 227[Chat]
215whisper_distance = 10 228whisper_distance = 10