CMS collector ignoring -XX:CMSInitiatingOccupancyFraction completely??

M

M

I have a Java service that appears to ignore the
XX:CMSInitiatingOccupancyFraction flag completely. Here're the GC
related settings:

-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:CMSInitiatingOccupancyFraction=50
-XX:+UseCMSInitiatingOccupancyOnly
-Xmx2048m -Xms2048m
-XX:NewSize=100m
-XX:MaxNewSize=100m

Despite setting CMSInitiatingOccupancyFraction to 50% and setting
UseCMSInitiatingOccupancyOnly to true, the CMS collector continues to
wait until the tenured generation grows *way* above 50% before it
kicks in.

The reason for 50% threshold is this app being very sensitive to
pauses and I want to avoid pause if at all possible, at the expense of
memory and CPU. However because CMS doesn't start early as it should
(should start at 50% tenured occupancy), I occasionally get YJ
promotions failures and results a STW collection pause, probably due
to fragmentation.

This is JRE1.6.0 on Linux. What's going on??
 
J

Joshua Cranmer

M said:
I have a Java service that appears to ignore the
XX:CMSInitiatingOccupancyFraction flag completely. Here're the GC
related settings:

-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:CMSInitiatingOccupancyFraction=50
-XX:+UseCMSInitiatingOccupancyOnly
-Xmx2048m -Xms2048m
-XX:NewSize=100m
-XX:MaxNewSize=100m

Despite setting CMSInitiatingOccupancyFraction to 50% and setting
UseCMSInitiatingOccupancyOnly to true, the CMS collector continues to
wait until the tenured generation grows *way* above 50% before it
kicks in.

The reason for 50% threshold is this app being very sensitive to
pauses and I want to avoid pause if at all possible, at the expense of
memory and CPU. However because CMS doesn't start early as it should
(should start at 50% tenured occupancy), I occasionally get YJ
promotions failures and results a STW collection pause, probably due
to fragmentation.

This is JRE1.6.0 on Linux. What's going on??

This is a virtual machine question, and so belongs on c.l.j.machine.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,990
Messages
2,570,211
Members
46,796
Latest member
SteveBreed

Latest Threads

Top