diff options
author | Melanie Thielker | 2015-11-12 21:13:44 +0100 |
---|---|---|
committer | Melanie Thielker | 2015-11-12 21:13:44 +0100 |
commit | 8c7f47574040aa116dfb57e8c380e1fad60e5d1a (patch) | |
tree | d2901476267c9c6a2b594a9a7c0102b66297d0e7 | |
parent | Move a call to RequestModuleInterface to a new scene callback function (diff) | |
download | opensim-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-x | OpenSim/Region/Framework/Scenes/Scene.cs | 29 | ||||
-rw-r--r-- | bin/OpenSimDefaults.ini | 10 |
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; | |||
39 | using OpenMetaverse; | 39 | using OpenMetaverse; |
40 | using OpenMetaverse.Packets; | 40 | using OpenMetaverse.Packets; |
41 | using OpenMetaverse.Imaging; | 41 | using OpenMetaverse.Imaging; |
42 | using OpenMetaverse.StructuredData; | ||
42 | using OpenSim.Framework; | 43 | using OpenSim.Framework; |
43 | using OpenSim.Framework.Monitoring; | 44 | using OpenSim.Framework.Monitoring; |
44 | using OpenSim.Services.Interfaces; | 45 | using 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; |