64 bit CMS JDK 5.0 u14

Keith Holdaway Keith.Holdaway at sas.com
Mon Dec 10 18:16:05 UTC 2007


I am running some midle-tier Portal load tests in WLS 9.2 MP2 with Sun JDK 5.0 u14. I am running 100 concurrent users that logon, navigate, open portlets, and eventually logoff; only to logon again and repeat the cycle. My testing people have establish Load Runner scripts to put the Portal software through an endurance test over 5 days with the 100 users.

Normally on 32-bit WLS 8.1 SP6 with JDK 1.4.2_13 we run with the following VM args; we attain some 3.4 million passed transactions with zero failed transactions:

-server -Xms1400m -Xmx1400m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:PermSize=128m -XX:MaxPermSize=128m -Xss128k -XX:-UseTLAB -XX:+DisableExplicitGC
-Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true

CMS never works very well in the 32-bit environment; failing miserably above; although at JDK 1.4.2_15, we see some 2 million passed transactions with 1130+ failed transactions owing to 120 seconds timeouts in concurrent mode failures.

Now, in the 64 bit environment running on AMD Windows Server 2003, I can run pretty successfully with CMS:

-Xms1500m -Xmx3500m -XX:NewSize=320m -XX:MaxNewSize=320m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=0 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true -Dcom.sun.management.jmxremote -verbosegc -Xloggc:C:\keith\GCLogs\gc11.txt

I can achieve some 3.4 million as for the throughput collector in 32 bit env.

But, I do note several thousand failed transactions that correlate with concurrent mode failures after some 24 hrs; pauses in the 400-600 seconds range when Full GC takes over.

I have tried varying the CMSInitiatingOccupancyFraction to 20%, but the CMS mode failures still occur.

I am now running with the incremental mode CMS; but anticipate further very long pauses.

The VM always recovers very well after these sporadic Full GCs, but to eradicate them, should I run with an 8 GB heap or something along those lines.? I also read something about killing the swap file?

My AMD 64 bit bx, unfortunately for now is restricted to 4 GB RAM; but I am adding a further 4 GB soon. I am about to go to the Solaris SPARC 64 bit and run the exact same scenario with a 7-8 GB heap.

I read about the occupancy fration for OG and Perm Gen; do I need to apply this patch. Our Perm Gen is always set to 128 MB and only ever attains 108 MB.

Any feedback would help us in our endeavours to support our EBI apps in a 64 bit env.


Keith R Holdaway
Java Development Technologies

SAS...  The Power to Know

Carpe Diem ...

More information about the hotspot-gc-dev mailing list