I have two app nodes with same GC configurations except for CMSIncrementalMode. Following are the screen shots from GC Viewer for both the apps with and without CMSIncrementalMode.
The app not using CMSIncrementalMode has significantly lower throughput and the precleans were aborted with the message "CMS: abort preclean due to time". Also the objects were not promoted to old gen even when there is lot of empty space in old gen.
I understand that the incremental smaller concurrent steps might have stopped the preclean aborts. But I am trying to understand the following.
Why would an aborted preclean had such huge negative impact on the app? or is it some thing else causing the negative impacts?
How did the CMSIncrementalMode helped the minor GCs on young gen. Isn't the incremental mode just on the old gen collections?
Why is ParNew count different from initial-mark and remark. Without CMSIncrementalMode I see more marks and remarks. With CMSIncrementalMode I see more ParNews.
GC Configs:
Total Heap: 3GB
New: 1800MB
UseConcMarkSweepGC
CMSClassUnloadingEnabled
GC Viewer stats:
App using CMSIncrementalMode
App not using CMSIncrementalMode
Thanks in advance