option combinations

Victor Cheung VictorC at ganz.com
Sun Dec 14 08:28:50 PST 2008

I've read quite a bit of material so far and nowhere was it ever stated explicitly that ParNewGC is automagically turned on when CMS is selected.  But, i did get the feeling that those two always went together.  As this is a new area i'm learning, i personally would prefer that things be made explicit/clear without having to read-between-the-lines or surmising conclusions...

anyhow, i have to ask... if -Xmn must be 1/4 of -Xms, what happens if it isn't?

is setting -Xmn=512m the same as setting "-XX:NewSize=512m -XX:MaxNewSize=512m" ? (i.e. absolute sizing)

whereas using -XX:NewRatio=3 would mean the young generation size can grow/contract ?  (i.e. dynamic sizing)

and i would still like to know which option takes precedence over which if all of these were specified...


From: Michael Finocchiaro [michael.finocchiaro at gmail.com]
Sent: Sunday, December 14, 2008 10:54 AM
To: Victor Cheung
Subject: Re: option combinations

CMS by default assumes you are doing away with ScavangeGCs and using CMS as your more-or-less only collector. I have found that solution to be sub-optimal and thus set SurvivorRatio explicitly to work around this. Also note that -Xmn MUST be 1/4 of -Xms regardless of SurvivorRatio.
ParNewGC doesn't have any other options that I know of but ParallelGC has the -XX:+UseAdaptiveSizePolicy with works ONLY with ParallelGC and not with ParNewGC.
Any CMS options are obviously stuck to CMS and thus to ParNewGC.
Note that ParNewGC is ALWAYS turned on automagically by CMS unless you explicitly turn it off with -XX:-UseParNewGC.
Best comprehensive option list I know of is here: http://blogs.sun.com/watt/resource/jvm-options-list.html and it does list some of the defaults. For others, I'll defer to the developers on this thread :)

Michael Finocchiaro
michael.finocchiaro at gmail.com<mailto:michael.finocchiaro at gmail.com>
Mobile Telephone: +33 6 85 46 07 62
MSN: le_fino at hotmail.com<mailto:le_fino at hotmail.com>
Blog: http://mfinocchiaro.wordpress.com
Bookmarks: http://del.icio.us/michael.finocchiaro

On Sun, Dec 14, 2008 at 4:31 PM, Victor Cheung <VictorC at ganz.com<mailto:VictorC at ganz.com>> wrote:
I thought CMS only worked on the old generation heap.  Why does it affect survivor space sizing that is only in the young generation?  In any case, is the SurvivorRatio=1024 true for Linux 64-bit?

How can i tell which options are specific to ParNewGC (vs those specific to ParallelGC/ParallelOldGC)?

Another general question:  where can one find a listing of all the default values?  (this is why at the very beginning i asked if there was a way to find out *all* the options being used by a running JVM -- *all* meaning both the options explicitly set by the user, and also those automatically set by the JVM at runtime.  The answer to this was no.  The tools (jconsole, visualvm, jinfo) that i've tried so far only tell you what you already know -- i.e. only list the option values that you yourself explicitly set!

please don't tell me the answer is to read the code...


From: Michael Finocchiaro [michael.finocchiaro at gmail.com<mailto:michael.finocchiaro at gmail.com>]
Sent: Sunday, December 14, 2008 2:48 AM
To: Y Srinivas Ramakrishna
Cc: Victor Cheung; hotspot-gc-use at openjdk.java.net<mailto:hotspot-gc-use at openjdk.java.net>
Subject: Re: option combinations

I have found that NewRatio is overridden by almost any other flag and
that it is recommended to use Xmn instead.
Also beware that CMS will set SurvivorRatio=1024 but that you can
specify SurvivorRatio explicitly to override this.
All ParNewGC/CMS flags are unique to the low-pause collector (same
goes for ParallelGC/ParallelOldGC for the throughout collector) except
as Ramki said ParallelGCThreads.
I think that Java6 gave us control for the CMSThreads or am I mistaken?

Sent from Fino's iPhone 3G

On 14 déc. 08, at 08:40, Y Srinivas Ramakrishna
<Y.S.Ramakrishna at Sun.COM> wrote:

>> i can't seem to find a comprehensive listing or matrix of which
>> options are valid with each other.
>> does anyone know of such information?
> Unfortunately, no such documentation exists, as far as i know.
> If you have questions about specific combinations, we can try and
> answer them.
> We can, of course, also think about how one might go about
> documenting this combinatorial morass. Any suggestions/examples?
> (The general problem of transcription of the combinatorial
> possibilities is of course intractable, but the problem may well
> be tractable for HotSpot options by means of partitioning into
> orthogonal
> subsets/"partitions".)
> -- ramki
> _______________________________________________
> hotspot-gc-use mailing list
> hotspot-gc-use at openjdk.java.net<mailto:hotspot-gc-use at openjdk.java.net>
> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20081214/415f4e28/attachment.html 
-------------- next part --------------
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net

More information about the hotspot-gc-dev mailing list