<div dir="ltr"><div dir="ltr">Hi Thomas, thank you for the patch. <div><br><div class="gmail_quote"><div dir="ltr">On Mon, 8 Oct 2018 at 17:06, Thomas Schatzl <<a href="mailto:thomas.schatzl@oracle.com">thomas.schatzl@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
here's the promised patch based on latest discussions:<br>
<br>
<a href="http://cr.openjdk.java.net/~tschatzl/jelastic/pgc-webrev.3/webrev/" rel="noreferrer" target="_blank">http://cr.openjdk.java.net/~tschatzl/jelastic/pgc-webrev.3/webrev/</a><br>
<br>
It is based on "6490394: G1: Allow heap shrinking / memory unmapping<br>
after reclaiming regions during Remark", that is out for review now.<br>
<br>
As for the options, they were named as follows:<br>
<br>
G1PeriodicGCInterval: Number of milliseconds after a previous GC to<br>
wait before triggering a periodic gc. A value of zero disables<br>
periodically enforced gc cycles. </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
(Note that I just found out when copy&pasting this description from the<br>
g1_globals file that the text I there needs fixing - I will do that<br>
asap :))<br>
<br>
G1PeriodicGCInvokesConcurrent: Determines the kind of periodic GC. Set<br>
to true to have G1 perform a concurrent GC as periodic GC, otherwise<br>
use a STW Full GC.<br></blockquote><div>Is concurrent enabled by default? If not, then why not?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><br>
G1PeriodicGCSystemLoadThreshold: Maximum recent system wide system load<br>
at which G1 triggers a periodic GC. A load above this value cancels a<br>
given periodic GCs. A value of zero disables this check.<br></blockquote><div>Maybe a clear mention of loadavg in the description can help to avoid potential confusions around system load definition. <br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The policy has been implemented so that any reason to not start a<br>
periodic collection right now will cancel the current attempt - another<br>
attempt will be made after G1PeriodicGCInterval ms. This is different<br>
to suppress the periodic gc until the next time the conditions are met.<br>
<br>
>From a default values POV, periodic gcs will be on by default with an<br>
interval of 5mins. This should be fairly non-intrusive for all but<br>
exceptional cases.<br>
<br>
Please check whether all this still fits your use case :)<br></blockquote><div>Looks good for me. Thanks again. </div><div><br></div><div>Btw, we have got an approved session at OracleCode about JVM elasticity <a href="https://oracle.rainfocus.com/widget/oracle/oow18/catalogcodeone18?search=elastic%2Bjvm">https://oracle.rainfocus.com/widget/oracle/oow18/catalogcodeone18?search=elastic%2Bjvm</a>. I'm planning to bring up topics about general benefits, available options with different GCs and JVMs, specifics of running elastic JVM in containers, elaboration of possible further improvements. Please join the session for a live talk.</div><div> </div><div>Regards </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Thanks,<br>
Thomas<br>
<br>
On Thu, 2018-10-04 at 15:27 +0300, Ruslan Synytsky wrote:<br>
> <br>
> <br>
> On Thu, 4 Oct 2018 at 15:06, Rodrigo Bruno <<a href="mailto:rbruno@gsd.inesc-id.pt" target="_blank">rbruno@gsd.inesc-id.pt</a>><br>
> wrote:<br>
> > Hi Stefan,<br>
> > <br>
> > <br>
> > Stefan Johansson <<a href="mailto:stefan.johansson@oracle.com" target="_blank">stefan.johansson@oracle.com</a>> escreveu no dia<br>
> > quarta, 3/10/2018 à(s) 21:18:<br>
> > > We discussed this a bit further today and I'll try to summarize<br>
> > > what we currently think is the way forward and what a first<br>
> > > version should include:<br>
> > > * Periodic concurrent cycles (which after JDK-6490394 will<br>
> > > uncommit memory) are on by default, but will only trigger if no<br>
> > > other GC has occurred during the interval. The length of the<br>
> > > interval should be controlled by a flag and if set to -1, the<br>
> > > periodic GCs will be turned off. The name should probably be<br>
> > > something other than GCFrequency, like PeriodicGCInterval or so.<br>
> > > This will be similar to what currently is called<br>
> > > CMSTriggerInterval for CMS.<br>
> > > * You can also control the periodic GCs by specifying a system<br>
> > > average load threshold, which the current avg load must be under<br>
> > > for a periodic GC to occur. This value will not be consider by<br>
> > > default, and I think we should try to come up with at more<br>
> > > describing name than MaxLoadGC.<br>
> > > * The code checking if a periodic GC should trigger will be added<br>
> > > to the already existing G1YoungRemSetSamplingThread. This thread<br>
> > > currently is pretty idle and there are ideas around removing it,<br>
> > > but if that is done we can move the idle-checking code then.<br>
> > > * If you want the periodic GC to be a full collection, there will<br>
> > > be a flag to control this.<br>
> > > <br>
> > > Those were the key parts in our discussion, and I think Thomas<br>
> > > plans to update his webrev in a few days or so. Does this still<br>
> > > sound like a good starting point?<br>
> > > <br>
> > <br>
> > Sounds great for me!<br>
> > <br>
> <br>
> No objections on my side too.<br>
> Regards <br>
> > cheers,<br>
> > rodrigo<br>
> > <br>
> > > And also, other users having opinions are very welcome :)<br>
> > > <br>
> > > Thanks,<br>
> > > Stefan<br>
> > > > <br>
> > > > -- <br>
> > > > Ruslan<br>
> > > > CEO @ Jelastic<br>
> <br>
> <br>
<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:12.8px"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-family:"Times New Roman""><span style="font-family:Calibri,sans-serif;font-size:15px">Ruslan</span><br style="font-family:Calibri,sans-serif;font-size:15px"><span style="font-family:Calibri,sans-serif;font-size:15px">CEO @ </span><span style="font-family:Calibri,sans-serif;font-size:15px"><a href="https://jelastic.com/" style="color:rgb(17,85,204)" target="_blank">Jelastic</a></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>