|Re: [openj9-dev] OpenJ9 question|
Hi Akrus, here are responses to a few questions:
2) with -Xgcpolicy:metronome and heap >25Gb I get this message:
Selected VM [default] does not exist.
Metronome does support heaps larger than 25g however it does not support 4-bit shift Compressed Refs for heaps 32g-64g. The observed behavior is a problem in redirector. The work around would be run with -Xnocompressedrefs or run with -Xcompressedrefs but with limitation of virtual memory below 32g
3) what's the best GC option for low latency apps? Does do not say this directly, but is it Metronome? Are there any flags than can further reduce GC pauses? -Xrealtime doesn't work, is it unavailable completely or it's a part of some subscription?
Yes, Metronome GC policy is best for low latency. Tuning options are here: https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/user/mgc/metronome.html
We also have the very new low-pause variant on Gencon GC policy with Concurrent Scavenger, but it's only available on newest IBM's Z series machines.
5) how to rotate GC logs?
Rolling verbose GC logs: https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/diag/appendixes/cmdline/xverbosegclog.html Not sure what is meant by flush on signal. Our logs are by default synchronous, so there is no need for an explicit flush for ongoing logging - they are written in a file as soon as they are generated. If, however, by this is meant: close the current file and start using a new file, I don't think we support it.
Back to the top