When tuning Java Garbage Collector you have to be very careful, as you may result to a worst performance instead of a better one.
The GC parameter “-XX:MaxTenuringThreshold” defines how many minor GC cycles an object can stay in the survivor spaces until it finally gets tenured to the old space.
Until java version 1.5.0_05 the maximum value for this parameter was 31. But in all the newest versions of java (1.5.0_06, jdk6, …) the maximum value changed to 15 and for any value we set greater than 15, GC translates it to infinity. Which is very bad, as converts old space to useless space and survivor spaces will be consumed indefinitely by old objects (that normally should moved to old space). This will soon lead to heap fragmentation.
As your old space is useless (as it is empty), server will do much more full ‘stop-the-world’ GCs to defragment heap. This will have an impact to your applications, as you will see many unnecessary pauses.
In order to avoid this situation, you have to set -XX:MaxTenuringThreshold to a value between 0 and 15 (0 means objects will get tenured immediately, and 15 means objects will get aged 15 times at most before tenured).
Democracy requires Free Software