* Jusa Saari <jargonautti at hotmail.com> [2006-07-11 21:58:26]: > On Sun, 09 Jul 2006 10:40:17 +0200, Florent Daigni?re wrote: > > > * Colin Davis <Colin at sq7.org> [2006-07-08 23:41:24]: > > > >> Fair- The profilers I found all seemed to be GUI based- I run my node on > >> a server without X, that I can only access via SSH. I know Java 1.5 has > >> a way do generate a profile text file, though.. > >> I'll look into it, I suppose. > > > > No need to : I can explain the current strategy: > > > > We *force* the GC every 18.25 sec in our MemoryChecker thread. So, yes, it > > probaly creates CPU spikes ;) > > > > And yes, we have a good reason for doing so: we want to find OOM errors as > > soon as possible when we introduce them... So until we release, it will > > remain like that, unless you prove us it affects the load-balancing > > algorithm. > > You lost me here. > > To the best of my knowledge, if there isn't enough free memory to > allocate an object when one is created, the node triggers a minor garbage > collection; if there still isn't enough free memory after that, it > triggers a full collection. If there still isn't enough memory, it throws > an OOM error. > > So, if you get an OOM error, the node has just done a full garbage > collection anyway, and it doesn't matter if it did one a few seconds > earlier as well, since whatever garbage that earlier collection got rid > of would still be garbage and would be got rid of at this later time. > Therefore, forcing full collection periodically does nothing but waste CPU > time; it cannot affect whether an object allocation succeeds or fails. > > The only exception are objects with finalizers, since the first collection > that detects them as garbage simply runs the finalizer, and only the > second gets rid of them. But I hope that Freenet doesn't do heavy use of > such objects anyway, since they negatively affect performance for the > reasons I mentioned. > > What did I miss ?
That the base object in freenet is the "Bucket" and that we do use finalizers around it :) NextGen$ > > Oh well, I set the JVM option to disable explicit GC, so I won't be > affected by this anyway anymore. > > > NextGen$ > > > > > >> On Jul 8, 2006, at 11:08 PM, Ian Clarke wrote: > >> > >> >On 8 Jul 2006, at 19:26, Colin Davis wrote: > >> >>It seems that there amy be optimizations that can be made to the JVM, > >> >>in telling it how and when to do the GC for Freenet. I'm not familiar > >> >>enough with freenet to know which would be the best stragegy, but I'm > >> >>looking for options. > >> >>http://java.sun.com/docs/hotspot/gc1.4.2/faq.html > >> >> > >> >>Any other suggestions on lowering my CPU usage are welcome. It seems > >> >>like the load is usually low, but spikes high- It might be FEC, or it > >> >>might be GC in the JVM. > >> > > >> >Manually invoking the GC can be counter-productive unless you really > >> >know what you are doing. > >> > > >> >The best way to address CPU issues is to run a profiler to see what is > >> >causing the problem. > >> > > >> >Ian. > >> >_______________________________________________ Devl mailing list > >> >Devl at freenetproject.org > >> >http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl > >> > >> _______________________________________________ Devl mailing list > >> Devl at freenetproject.org > >> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl > >> _______________________________________________ Devl mailing list > > Devl at freenetproject.org > > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl > > > _______________________________________________ > Devl mailing list > Devl at freenetproject.org > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >
