Apprecite your suggestions,
It all depends how you want to do it, JVM parameters gives a lot of flexibility to you and there is no one size fits all.
Moreover my intent was to help the team get some idea, and not to cut copy the exact thought, Diffrent app requires different type of setup.
We ran series of test "Load, noise, bursting, endurace" with multiple appications on single Jboss EAP4.3 with different veriosn of JDK. Results came best with the setup we have explained.
We used -XX:MaxTenuringThreshold=0
because it
promotes all objects allocated by the application in the young generation, which survive a single GC cycle, directly to the old generation without copying them around between the survivor spaces in the young generation. This setting, when used with CMS collector in the old generation helps in two ways.
- The young generation GC does not have to waste its time copying the 10-20% long lived objects multiple times between the survivor spaces, only to finally promote them to the old generation.
- Additionally, most of the collection and cleaning work of these objects can be done "concurrently" in the old generation. This behavior leads to additional reduction in GC sequential overhead.
http://java.sun.com/developer/technicalArticles/Programming/turbo/
This setup was also good based on our test scenarios.
I guess you are bringing some good points, we will use this in next series of test.Keep giving new Ideas :)
Respectfully,
Ruchir Choudhry
;)