Any pointers for tuning 1.5.0_22 for a webapp with a large tenured gen?

Justin Ellison justin at
Mon Jul 12 08:29:37 PDT 2010

Hello everyone,

We've recently upgraded our Weblogic webapp to Weblogic 9.2.1 which also
involved upgrading from jdk 1.4.2 to 1.5.0_22.  Java 6 isn't an option with
Weblogic 9.2, and the upgrade to Weblogic 10 isn't until next year, so Java
6 is not an option for me at this point in time.

I had the 1.4.2 tuned to the extreme:

JAVA_ARGS=-Xms2816m -Xmx2816m -XX:NewSize=384m -XX:MaxNewSize=384m
-XX:CompileThreshold=3000 \
-XX:LargePageSizeInBytes=4m -XX:+UseMPSS -Xss128k
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled
-Xnoclassgc -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=8
-XX:SurvivorRatio=6 -XX:+UseCMSCompactAtFullCollection -Xloggc:gc.out
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:MaxPermSize=92m

With our upgrade, the ergonomics of the application changed some, so I just
specified Xmx and Xms at 3GB, and let it run to see what happened.
Remarkably, things were actually pretty good - minor GC's are faster, and
major GC's only occur about once or twice an hour.  However, those major
GC's are taking from 12-20seconds, which I can't let our website users

Before I go down the road of tuning things, does anyone have any tips for
me?  I can afford at most 2 or 3 seconds of pause time at once, and would
prefer to keep it under 2 seconds if possible.  I need the 2GB of tenured to
be able to cache all the objects that I need to ensure good site

The ergonomics look kinda cool, but I'm wondering if that large of tenured
generation + my low pause requirement is just too much to ask from the
throughput collector.  Am I destined to go back to hand tweaking the CMS

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the hotspot-gc-use mailing list