We run multiple instances of the server process in a single Linux window. The box has 8 cores and 16 GB of RAM. I start each process using the -Xincgc option using Java 1.6.
We use various timers throughout the application that track the time for various tasks. When garbage collection occurs, I notice that every java process on the box prints that any task it was working with at that time was slow.
It does not linger for a long time, maybe 100-300 ms or so, but latency is a huge factor for this. He also does not stop constantly, just periodically.
When garbage collection happens, does it stop any java process from getting any time? If so, is there a way around this? Should I use different GC options?
UPDATE:
Just to be clear, it doesn't bother me that one process has stalled while the GC is going on. I can adjust the settings or optimize for this case. I'm just wondering why EVERY running Java process seems to stall at the same time that I thought they were more or less independent.
source share