> 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.