> From: Christopher Schultz [mailto:ch...@christopherschultz.net] 
> Subject: Re: Tomcat 6 performance & multiple instances

> I'm not sold on the heap: if you have two GC processes running in
> parallel (that is, in separate JVMs) I'm not convinced that you are
> saving yourself any CPU time. Sure, the CPU time required in a single
> JVM might drop in half, but then you double the number of JVMs so you're
> back where you started. What kind of GC were you using?

There's also the issue of doubling the number of other daemon threads the JVM 
uses internally, such as the compiler threads, finalizer, reference handler, 
etc.  They don't use much time, but they do take up resources.

I'm also very, very interested in the exact cause for the improvement observed 
with multiple JVMs using "another servlet container" - which may have no 
applicability to Tomcat.

> Using NUMA-aware GC would probably help.

Not available on Windows.

> Er, do you mean "compressed OOPs"? I think that will actually slow
> things down, since it requires an extra ADD (more likely SHIFT)
> operation to decode each OOP when referencing the associated object.

It's worse than that - the compressed OOPs are relative as well, so it's an add 
and a shift.  However, if you keep the heap size down (so that direct 32-bit 
pointers are used), that extra overhead is eliminated - but now you're 
constrained by a small heap.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.

Reply via email to