aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2015-11-12 21:13:44 +0100
committerMelanie Thielker2015-11-12 21:13:44 +0100
commit8c7f47574040aa116dfb57e8c380e1fad60e5d1a (patch)
treed2901476267c9c6a2b594a9a7c0102b66297d0e7
parentMove a call to RequestModuleInterface to a new scene callback function (diff)
downloadopensim-SC-8c7f47574040aa116dfb57e8c380e1fad60e5d1a.zip
opensim-SC-8c7f47574040aa116dfb57e8c380e1fad60e5d1a.tar.gz
opensim-SC-8c7f47574040aa116dfb57e8c380e1fad60e5d1a.tar.bz2
opensim-SC-8c7f47574040aa116dfb57e8c380e1fad60e5d1a.tar.xz
Add some values to the SimulatorFeatures cap's OpenSimExtras section:
SimulatorFPS: The actual optimal FPS of the simulator, un-fudged SimulatorFPSFactor: The fudge factor that is applied to the stats sent to the viewer SimulatorFPSWarnPercent: The percentage below which a lag meter should go to amber SimulatorFPSCritPercent: The percentage below which a lag meter should go to red To display the real values, a viewer would divide the reported FPS by the SimulatorFPSFactor and use that to calculate the percentage of SimulatorFPS. E.g. reported is 55fps, SimulatorFPSFactor is 5.0 and SimulatorFPS is 11.
-rwxr-xr-xOpenSim/Region/Framework/Scenes/Scene.cs29
-rw-r--r--bin/OpenSimDefaults.ini10
2 files changed, 38 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 32b45ac..2fcb78d 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -39,6 +39,7 @@ using Nini.Config;
39using OpenMetaverse; 39using OpenMetaverse;
40using OpenMetaverse.Packets; 40using OpenMetaverse.Packets;
41using OpenMetaverse.Imaging; 41using OpenMetaverse.Imaging;
42using OpenMetaverse.StructuredData;
42using OpenSim.Framework; 43using OpenSim.Framework;
43using OpenSim.Framework.Monitoring; 44using OpenSim.Framework.Monitoring;
44using OpenSim.Services.Interfaces; 45using OpenSim.Services.Interfaces;
@@ -360,6 +361,8 @@ namespace OpenSim.Region.Framework.Scenes
360 /// Frame time 361 /// Frame time
361 /// </remarks> 362 /// </remarks>
362 public float FrameTime { get; private set; } 363 public float FrameTime { get; private set; }
364 public int FrameTimeWarnPercent { get; private set; }
365 public int FrameTimeCritPercent { get; private set; }
363 366
364 // Normalize the frame related stats to nominal 55fps for viewer and scripts option 367 // Normalize the frame related stats to nominal 55fps for viewer and scripts option
365 // see SimStatsReporter.cs 368 // see SimStatsReporter.cs
@@ -860,6 +863,8 @@ namespace OpenSim.Region.Framework.Scenes
860 { 863 {
861 m_config = config; 864 m_config = config;
862 FrameTime = 0.0908f; 865 FrameTime = 0.0908f;
866 FrameTimeWarnPercent = 60;
867 FrameTimeCritPercent = 40;
863 Normalized55FPS = true; 868 Normalized55FPS = true;
864 MinMaintenanceTime = 1; 869 MinMaintenanceTime = 1;
865 SeeIntoRegion = true; 870 SeeIntoRegion = true;
@@ -1101,6 +1106,8 @@ namespace OpenSim.Region.Framework.Scenes
1101 } 1106 }
1102 1107
1103 FrameTime = startupConfig.GetFloat( "FrameTime", FrameTime); 1108 FrameTime = startupConfig.GetFloat( "FrameTime", FrameTime);
1109 FrameTimeWarnPercent = startupConfig.GetInt( "FrameTimeWarnPercent", FrameTimeWarnPercent);
1110 FrameTimeCritPercent = startupConfig.GetInt( "FrameTimeCritPercent", FrameTimeCritPercent);
1104 Normalized55FPS = startupConfig.GetBoolean( "Normalized55FPS", Normalized55FPS); 1111 Normalized55FPS = startupConfig.GetBoolean( "Normalized55FPS", Normalized55FPS);
1105 1112
1106 m_update_backup = startupConfig.GetInt("UpdateStorageEveryNFrames", m_update_backup); 1113 m_update_backup = startupConfig.GetInt("UpdateStorageEveryNFrames", m_update_backup);
@@ -1254,6 +1261,28 @@ namespace OpenSim.Region.Framework.Scenes
1254 1261
1255 if (dm != null) 1262 if (dm != null)
1256 m_eventManager.OnPermissionError += dm.SendAlertToUser; 1263 m_eventManager.OnPermissionError += dm.SendAlertToUser;
1264
1265 ISimulatorFeaturesModule fm = RequestModuleInterface<ISimulatorFeaturesModule>();
1266 if (fm != null)
1267 {
1268 OSD openSimExtras;
1269 OSDMap openSimExtrasMap;
1270
1271 if (!fm.TryGetFeature("OpenSimExtras", out openSimExtras))
1272 openSimExtras = new OSDMap();
1273
1274 float statisticsFPSfactor = 1.0f;
1275 if(Normalized55FPS)
1276 statisticsFPSfactor = 55.0f * FrameTime;
1277
1278 openSimExtrasMap = (OSDMap)openSimExtras;
1279 openSimExtrasMap["SimulatorFPS"] = OSD.FromReal(1.0f / FrameTime);
1280 openSimExtrasMap["SimulatorFPSFactor"] = OSD.FromReal(statisticsFPSfactor);
1281 openSimExtrasMap["SimulatorFPSWarnPercent"] = OSD.FromInteger(FrameTimeWarnPercent);
1282 openSimExtrasMap["SimulatorFPSCritPercent"] = OSD.FromInteger(FrameTimeCritPercent);
1283
1284 fm.AddFeature("OpenSimExtras", openSimExtrasMap);
1285 }
1257 } 1286 }
1258 1287
1259 protected virtual void RegisterDefaultSceneEvents() 1288 protected virtual void RegisterDefaultSceneEvents()
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index fadd359..1481fca 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -174,7 +174,7 @@
174 ; Adicionaly they are scaled to values they whould have on a system running at a nominal 55 frames per second rate 174 ; Adicionaly they are scaled to values they whould have on a system running at a nominal 55 frames per second rate
175 ; The scale factor it 55 * FrameTime, corresponding to 5 with default configuration 175 ; The scale factor it 55 * FrameTime, corresponding to 5 with default configuration
176 ; You can choose to not apply this scale factor setting Normalized55FPS to false. 176 ; You can choose to not apply this scale factor setting Normalized55FPS to false.
177 ; Normalized55FPS = false 177 ; Normalized55FPS = true
178 178
179 ; Main Frame time 179 ; Main Frame time
180 ; This defines the rate of several simulation events. 180 ; This defines the rate of several simulation events.
@@ -185,6 +185,14 @@
185 ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same 185 ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
186 FrameTime = 0.0909 186 FrameTime = 0.0909
187 187
188 ; The values below represent the percentage of the target frame time that,
189 ; when underrun, should trigger yellow or red in the lag meter.
190 ; Less than 60% of FPS is amber by default, less then 40% is red.
191 ; These values are advisory. Viewers may choose to not use them but it is
192 ; encouraged that they do.
193 ; FrameTimeWarnPercent = 60;
194 ; FrameTimeCritPercent = 40;
195
188 ; Send scheduled updates to objects in the scene 196 ; Send scheduled updates to objects in the scene
189 ; This must be a whole number 197 ; This must be a whole number
190 UpdateObjectsEveryNFrames = 1; 198 UpdateObjectsEveryNFrames = 1;