G1 with Solr - thread from dev at lucene.apache.org
Thomas Schatzl
thomas.schatzl at oracle.com
Tue Dec 23 17:55:47 UTC 2014
Hi,
On Tue, 2014-12-23 at 10:46 -0700, Shawn Heisey wrote:
> On 12/21/2014 7:01 AM, Thomas Schatzl wrote:
> >
> > Add
> >
> > -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintReferenceGC -XX:
> > +PrintAdaptiveSizePolicy
>
> I have GC logging options in a separate environment variable.
>
> GCLOG_OPTS="-verbose:gc -Xloggc:logs/gc.log -XX:+PrintGCDateStamps
> -XX:+PrintGCDetails -XX:+PrintAdaptiveSizePolicy -XX:+PrintReferenceGC"
ParallelRefProcEnabled is missing.
use
GCLOG_OPTS="-verbose:gc -Xloggc:logs/gc.log -XX:+PrintGCDateStamps
-XX:+PrintGCDetails -XX:+PrintAdaptiveSizePolicy -XX:+PrintReferenceGC
-XX:+UnlockExperimentalVMOptions -XX:G1LogLevel=finest"
The last two are additional verboseness options.
>
> Here's the new G1 options list based on your feedback:
>
> JVM_OPTS=" \
> -XX:+UseG1GC \
> -XX:NewRatio=3 \
Remove NewRatio. This will severely limit adaptiveness.
> -XX:+ParallelRefProcEnabled
> -XX:maxGCPauseMillis=200
Use "MaxGCPauseMillis" with capital M.
> -XX:+UseLargePages \
> -XX:+AggressiveOpts \
> "
I.e.
JVM_OPTS=" \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UseLargePages \
-XX:+AggressiveOpts
Actually it might be as good to simply use:
JVM_OPTS=" \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled"
Because 200 is the default value for MaxGCPauseMillis, and the others
either are not used anyway (no large pages in your system) or won't have
any noticeable impact (AggressiveOpts has last been tuned to current
systems ages ago; the only useful part of that is "-server" to enable
the server compiler, but on 64 bit VMs the server compiler is default
too). Always good to start from a clean slate.
Depending on the results from the log we can improve the settings.
Thanks,
Thomas
More information about the hotspot-gc-use
mailing list