Performance
From OpenSimulator
 (Moving content from GC_NO_EXPLICIT page)  | 
			|||
| Line 1: | Line 1: | ||
| − | |||
{{Template:Quicklinks}}  | {{Template:Quicklinks}}  | ||
| − | |||
==Running Squid on your region server as a reverse proxy to the asset server==  | ==Running Squid on your region server as a reverse proxy to the asset server==  | ||
| Line 10: | Line 8: | ||
Now assets will be cached in the squid cache on the region server, and will be served up much faster, especially on region restart.  | Now assets will be cached in the squid cache on the region server, and will be served up much faster, especially on region restart.  | ||
| + | |||
| + | == GC_NO_EXPLICIT ==  | ||
| + | |||
| + | Sometimes this patch applied to mono-svn has helped my sim run a lot faster and not slowly get bogged down.  | ||
| + | |||
| + | $mono-svn-root$/mono  | ||
| + |   mono/metadata/boehm-gc.c  | ||
| + | |||
| + | <pre>  | ||
| + | Index: boehm-gc.c  | ||
| + | ===================================================================  | ||
| + | --- boehm-gc.c	(revision 105684)  | ||
| + | +++ boehm-gc.c	(working copy)  | ||
| + | @@ -107,6 +107,10 @@  | ||
| + |  void  | ||
| + |  mono_gc_collect (int generation)  | ||
| + |  {  | ||
| + | +	static int no_explicite_gc = 0; if (no_explicite_gc==0) {if (getenv("GC_NO_EXPLICIT")) {no_explicite_gc = 1;return;} else {no_explicite_gc = 2;}} else if (no_explicite_gc==1) {  | ||
| + | +		g_print("\n --------GC_NO_EXPLICIT \n");  | ||
| + | +		return;  | ||
| + | +		}  | ||
| + |  	MONO_PROBE_GC_BEGIN (generation);  | ||
| + | |||
| + |  	GC_gcollect ();  | ||
| + | </pre>  | ||
| + | |||
| + | Not only this, but I recompile the mono runtime:  | ||
| + | <pre>--with-large-heap=yes</pre>  | ||
| + | |||
| + | Otherwise, the Sim is limited to 3GB RAM.  Probably, this second peice is more important.  But still, afterwards it's worth a shot to test with both to see if there is a difference in performance:  | ||
| + | |||
| + |  export GC_NO_EXPLICIT=1  | ||
| + | and  | ||
| + |  unset GC_NO_EXPLICIT  | ||
| + | |||
| + | What I think, (only a guess) is that Mono starts internally GC thrashing in fishing expeditions to gaining maybe 1k of RAM at time. And by having a large heap (>3GB), it is possible might keep mono less apt to do stop world complete collections as often.  | ||
Revision as of 00:08, 19 October 2009
Running Squid on your region server as a reverse proxy to the asset server
1. Download and install the Squid Proxy from: http://www.squid-cache.org/Download/
2. Create your squid.conf configuration file.
3. Change your asset_server configuration in your OpenSim.ini to point to http://localhost:3128/
4. Start everything up!
Now assets will be cached in the squid cache on the region server, and will be served up much faster, especially on region restart.
GC_NO_EXPLICIT
Sometimes this patch applied to mono-svn has helped my sim run a lot faster and not slowly get bogged down.
$mono-svn-root$/mono
mono/metadata/boehm-gc.c
Index: boehm-gc.c
===================================================================
--- boehm-gc.c	(revision 105684)
+++ boehm-gc.c	(working copy)
@@ -107,6 +107,10 @@
 void
 mono_gc_collect (int generation)
 {
+	static int no_explicite_gc = 0; if (no_explicite_gc==0) {if (getenv("GC_NO_EXPLICIT")) {no_explicite_gc = 1;return;} else {no_explicite_gc = 2;}} else if (no_explicite_gc==1) {
+		g_print("\n --------GC_NO_EXPLICIT \n");
+		return;
+		}
 	MONO_PROBE_GC_BEGIN (generation);
 	
 	GC_gcollect ();
Not only this, but I recompile the mono runtime:
--with-large-heap=yes
Otherwise, the Sim is limited to 3GB RAM. Probably, this second peice is more important. But still, afterwards it's worth a shot to test with both to see if there is a difference in performance:
export GC_NO_EXPLICIT=1
and
unset GC_NO_EXPLICIT
What I think, (only a guess) is that Mono starts internally GC thrashing in fishing expeditions to gaining maybe 1k of RAM at time. And by having a large heap (>3GB), it is possible might keep mono less apt to do stop world complete collections as often.