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.