I have a high volume Java application that handles a consistent load of 50000msgs/sec. It is tuned for high throughput using the following settings:
-Xmx3g -Xms3g -XX:NewSize=2g -Xss128k -XX:SurvivorRatio=6 -XX:TargetSurvivorRatio=90 -XX:+UseParallelGC -XX:ParallelGCThreads=12 -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError
I am finding that the young GC times steadily creeps up from 50ms when it starts to 200ms by the end of the day, although the frequency of GC runs remains the same.
If I try the same run using the ParNewGC collector, the GC times goes up at a much faster rate. Does anyone have any thoughts on this problem?