aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-06-10 18:10:57 +0000
committerJustin Clarke Casey2008-06-10 18:10:57 +0000
commit184a288b4d04a58579d03b2d9518b1b6e0640e80 (patch)
tree3f7d1628268dae9057c57af5f17384b467ad31f2
parentMantis#1501. Thank you kindly, Nebadon, for a patch that (diff)
downloadopensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.zip
opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.tar.gz
opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.tar.bz2
opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.tar.xz
* Add memory currently allocated to OpenSim to 'show stats' statistics
* This is the GC.GetTotalMemory() method, which I'm guessing does not include memory used by the VM (hence the memory usage reported in top on linux would be much higher)
-rw-r--r--OpenSim/Framework/Statistics/AssetStatsCollector.cs2
-rw-r--r--OpenSim/Framework/Statistics/BaseStatsCollector.cs51
-rw-r--r--OpenSim/Framework/Statistics/SimExtraStatsCollector.cs10
-rw-r--r--OpenSim/Framework/Statistics/UserStatsCollector.cs2
4 files changed, 59 insertions, 6 deletions
diff --git a/OpenSim/Framework/Statistics/AssetStatsCollector.cs b/OpenSim/Framework/Statistics/AssetStatsCollector.cs
index ed6779d..f2b765f 100644
--- a/OpenSim/Framework/Statistics/AssetStatsCollector.cs
+++ b/OpenSim/Framework/Statistics/AssetStatsCollector.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Framework.Statistics
33 /// <summary> 33 /// <summary>
34 /// Asset service statistics collection 34 /// Asset service statistics collection
35 /// </summary> 35 /// </summary>
36 public class AssetStatsCollector : IStatsCollector 36 public class AssetStatsCollector : BaseStatsCollector
37 { 37 {
38 private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); 38 private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000);
39 private DateTime startTime = DateTime.Now; 39 private DateTime startTime = DateTime.Now;
diff --git a/OpenSim/Framework/Statistics/BaseStatsCollector.cs b/OpenSim/Framework/Statistics/BaseStatsCollector.cs
new file mode 100644
index 0000000..9e827af
--- /dev/null
+++ b/OpenSim/Framework/Statistics/BaseStatsCollector.cs
@@ -0,0 +1,51 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Text;
30
31namespace OpenSim.Framework.Statistics
32{
33 /// <summary>
34 /// Statistics which all collectors are interested in reporting
35 /// </summary>
36 public class BaseStatsCollector : IStatsCollector
37 {
38 public virtual string Report()
39 {
40 StringBuilder sb = new StringBuilder(Environment.NewLine);
41 sb.Append("MEMORY STATISTICS");
42 sb.Append(Environment.NewLine);
43 sb.Append(
44 string.Format(
45 "Allocated to OpenSim : {0} MB" + Environment.NewLine,
46 Math.Round(GC.GetTotalMemory(false) / 1024.0 / 1024.0)));
47
48 return sb.ToString();
49 }
50 }
51}
diff --git a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs
index 506db31..7a74e72 100644
--- a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs
+++ b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Framework.Statistics
36 /// <summary> 36 /// <summary>
37 /// Collects sim statistics which aren't already being collected for the linden viewer's statistics pane 37 /// Collects sim statistics which aren't already being collected for the linden viewer's statistics pane
38 /// </summary> 38 /// </summary>
39 public class SimExtraStatsCollector : IStatsCollector 39 public class SimExtraStatsCollector : BaseStatsCollector
40 { 40 {
41 private long abnormalClientThreadTerminations; 41 private long abnormalClientThreadTerminations;
42 42
@@ -140,14 +140,14 @@ namespace OpenSim.Framework.Statistics
140 /// Report back collected statistical information. 140 /// Report back collected statistical information.
141 /// </summary> 141 /// </summary>
142 /// <returns></returns> 142 /// <returns></returns>
143 public string Report() 143 public override string Report()
144 { 144 {
145 StringBuilder sb = new StringBuilder(Environment.NewLine); 145 StringBuilder sb = new StringBuilder(Environment.NewLine);
146 sb.Append("ASSET STATISTICS"); 146 sb.Append("ASSET STATISTICS");
147 sb.Append(Environment.NewLine); 147 sb.Append(Environment.NewLine);
148 sb.Append( 148 sb.Append(
149 string.Format( 149 string.Format(
150@"Asset cache contains {0,6} assets using {1,10:0.000}K" + Environment.NewLine, 150@"Asset cache contains {0,6} assets using {1,10:0.000} K" + Environment.NewLine,
151 AssetsInCache, AssetCacheMemoryUsage / 1024.0)); 151 AssetsInCache, AssetCacheMemoryUsage / 1024.0));
152 152
153 sb.Append(Environment.NewLine); 153 sb.Append(Environment.NewLine);
@@ -155,7 +155,7 @@ namespace OpenSim.Framework.Statistics
155 sb.Append(Environment.NewLine); 155 sb.Append(Environment.NewLine);
156 sb.Append( 156 sb.Append(
157 string.Format( 157 string.Format(
158@"Texture cache contains {0,6} textures using {1,10:0.000}K 158@"Texture cache contains {0,6} textures using {1,10:0.000} K
159Blocked requests for missing textures: {2}" + Environment.NewLine, 159Blocked requests for missing textures: {2}" + Environment.NewLine,
160 TexturesInCache, TextureCacheMemoryUsage / 1024.0, 160 TexturesInCache, TextureCacheMemoryUsage / 1024.0,
161 BlockedMissingTextureRequests)); 161 BlockedMissingTextureRequests));
@@ -193,6 +193,8 @@ Blocked requests for missing textures: {2}" + Environment.NewLine,
193 sb.Append(Environment.NewLine); 193 sb.Append(Environment.NewLine);
194 } 194 }
195 195
196 sb.Append(base.Report());
197
196 return sb.ToString(); 198 return sb.ToString();
197 } 199 }
198 } 200 }
diff --git a/OpenSim/Framework/Statistics/UserStatsCollector.cs b/OpenSim/Framework/Statistics/UserStatsCollector.cs
index c7fe7c2..e094d91 100644
--- a/OpenSim/Framework/Statistics/UserStatsCollector.cs
+++ b/OpenSim/Framework/Statistics/UserStatsCollector.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Framework.Statistics
32 /// <summary> 32 /// <summary>
33 /// Collects user service statistics 33 /// Collects user service statistics
34 /// </summary> 34 /// </summary>
35 public class UserStatsCollector : IStatsCollector 35 public class UserStatsCollector : BaseStatsCollector
36 { 36 {
37 private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); 37 private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000);
38 38