<div><div><br><br><div class="gmail_quote"></div></div></div><div><div><div class="gmail_quote"><div dir="auto">On Thu, 11 Oct 2018 at 17:55, Thomas Schatzl <<a href="mailto:thomas.schatzl@oracle.com" target="_blank">thomas.schatzl@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
On Mon, 2018-10-08 at 22:09 +0300, Ruslan Synytsky wrote:<br>
> Hi Thomas, thank you for the patch. <br>
> <br>
> On Mon, 8 Oct 2018 at 17:06, Thomas Schatzl <<br>
> <a href="mailto:thomas.schatzl@oracle.com" target="_blank">thomas.schatzl@oracle.com</a>> wrote:<br>
> > 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<br>
> > unmapping<br>
> > after reclaiming regions during Remark", that is out for review<br>
> > 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. (Note that I just found out when<br>
> > copy&pasting this description from the g1_globals file that the<br>
> > text I there needs fixing - I will do thatasap :))<br>
<br>
(Updated the webrev with all your comments)<br>
<br>
> > <br>
> > G1PeriodicGCInvokesConcurrent: Determines the kind of periodic GC.<br>
> > Set to true to have G1 perform a concurrent GC as periodic GC,<br>
> > otherwise use a STW Full GC.<br>
> <br>
> Is concurrent enabled by default? If not, then why not?<br>
> <br>
<br>
Concurrent is enabled by default as otherwise this change would<br>
probably accidentally disturb operation too much :)<br>
<br>
> > <br>
> > G1PeriodicGCSystemLoadThreshold: Maximum recent system wide system<br>
> > load at which G1 triggers a periodic GC. A load above this value<br>
> > cancels a given periodic GCs. A value of zero disables this check.<br>
> <br>
> Maybe a clear mention of loadavg in the description can help to avoid<br>
> potential confusions around system load definition. <br>
<br>
Done.<br>
<br>
> <br>
> > The policy has been implemented so that any reason to not start a<br>
> > periodic collection right now will cancel the current attempt -<br>
> > another attempt will be made after G1PeriodicGCInterval ms. This is<br>
> > different to suppress the periodic gc until the next time the<br>
> > conditions are met.<br>
> > <br>
> > From a default values POV, periodic gcs will be on by default with<br>
> > an interval of 5mins. This should be fairly non-intrusive for all<br>
> > but exceptional cases.<br>
> > <br>
> > Please check whether all this still fits your use case :)<br>
> <br>
> Looks good for me. Thanks again. <br>
<br>
I am currently testing the change a bit more, in particular I found<br>
that the periodic gcs mess up prediction (obviously because they are<br>
occurring during a time when the application is not very active, so the<br>
data they return is not very helpful for normal application behavior).<br>
I fixed that, but there may be some other details lurking that need<br>
fixing. Other than that everything looks good so far (performance,<br>
functional testing).<br>
<br>
Meanhwhile I will start updating the JEP again, and kick off the<br>
process (initially mostly internal).<br>
<br>
> <br>
> Btw, we have got an approved session at OracleCode about JVM<br>
> elasticity <br>
> <a href="https://oracle.rainfocus.com/widget/oracle/oow18/catalogcodeone18?search=elastic%2Bjvm" rel="noreferrer" target="_blank">https://oracle.rainfocus.com/widget/oracle/oow18/catalogcodeone18?search=elastic%2Bjvm</a><br>
> . I'm planning to bring up topics about general benefits, available<br>
> options with different GCs and JVMs, specifics of running elastic JVM<br>
> in containers, elaboration of possible further improvements. Please<br>
> join the session for a live talk.<br>
> <br>
<br>
Unfortunately I will not attend Code One this year, but I asked Per who<br>
does (he's giving some talk about ZGC if you are interested) to attend<br>
instead. I will certainly follow up on any recording there is :)</blockquote></div></div></div><div><div><div class="gmail_quote"><div dir="auto">Hi Thomas, yes, I’m definitely interested. How can I contact Per directly? As I would like to mention ZGC specifics related to the elasticity at my session. </div><div dir="auto">Thanks </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
Thanks,<br>
Thomas<br>
<br>
<br>
</blockquote></div></div></div><div><div><br clear="all"><div><br></div>-- <br><div class="m_-7628710776446400269m_-5023640802624500429gmail_signature" data-smartmail="gmail_signature"><div><div><div><div style="font-size:12.8px"><div><div><div><div><div><div><div><div><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>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Ruslan <br>CEO @ Jelastic</div>