[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: Concurrent heap monitoring
From:       "Kemper, William" <kemperw () amazon ! com>
Date:       2022-05-27 22:12:29
Message-ID: 1653689549469.91000 () amazon ! com
[Download RAW message or body]

The feature is independent from GCs, but it is aware of GC activity and it =
may be preempted by the GC at any time (which causes the loss of any work i=
n progress). We have only tested it with G1, but we expect it to work with =
Parallel and Serial collectors. It is meant to stay out of the way of GC, b=
ut it is not yet aware of the concurrent phases of G1, Shenandoah and ZGC, =
so there is more work to be done here.


Thank you for the questions,

William


________________________________
From: Volker Simonis <volker.simonis@gmail.com>
Sent: Saturday, May 21, 2022 12:49 AM
To: Kemper, William
Cc: serviceability-dev
Subject: RE: [EXTERNAL]Concurrent heap monitoring


CAUTION: This email originated from outside of the organization. Do not cli=
ck links or open attachments unless you can confirm the sender and know the=
 content is safe.


This sounds very interesting. Does this feature work with every GC or  does=
 the implementation depend on specific GCs (and if the latter, which GCs do=
es your prototype currently support).

Kemper, William <kemperw@amazon.com<mailto:kemperw@amazon.com>> schrieb am =
Fr., 20. Mai 2022, 23:46:

Taking a heap dump is a stop the world event. Garbage collection events can=
 provide heap utilization information only after a cycle completes. We've f=
ound that detailed heap occupancy data (such as heap inspections provide) a=
re too expensive to use for production monitoring.  Similarly, we find that=
 heap statistics generated from collection cycles may come too late and may=
 not provide enough detail (young collections do not reflect the state of t=
he old generation). We have developed a prototype feature to provide detail=
ed heap metrics concurrently, without barriers. It therefore provides only =
an estimate as changes to the object graph may cause it to miss objects. We=
 would like to hear the thoughts of serviceability experts on such a thing.=
 It is only at the proof of concept phase, but it is able to run popular be=
nchmarks (specjbb, dacapo) with minimal overhead and the estimates are suff=
iciently accurate for our use cases (monitoring heap and object growth rate=
s).


Thank you for reading,

William

[Attachment #3 (text/html)]

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: \
0px; }--></style> </head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
 <p>The feature is independent from GCs, but it is aware of GC activity and it may be \
preempted by the GC at any time (which causes the loss of any work in progress). We \
have only tested it with G1, but we expect it to work with Parallel and Serial \
collectors.  It is meant to stay out of the way of GC, but&nbsp;it is not yet aware \
of the&nbsp;concurrent phases of G1, Shenandoah and ZGC, so there is more work to be \
done here.<br> </p>
<p><br>
</p>
<p>Thank you for the questions,<br>
</p>
<p>William<br>
</p>
<p><br>
</p>
<div style="color: rgb(211, 207, 202); --darkreader-inline-color:#c9c5be;" \
data-darkreader-inline-color=""> <hr tabindex="-1" style="display:inline-block; \
width:98%"> <div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" \
color="#000000" style="font-size: 11pt; --darkreader-inline-color:#e8e6e3;" \
data-darkreader-inline-color=""><b>From:</b> Volker Simonis \
&lt;volker.simonis@gmail.com&gt;<br> <b>Sent:</b> Saturday, May 21, 2022 12:49 AM<br>
<b>To:</b> Kemper, William<br>
<b>Cc:</b> serviceability-dev<br>
<b>Subject:</b> RE: [EXTERNAL]Concurrent heap monitoring</font>
<div>&nbsp;</div>
</div>
<div>
<div class="WordSection1">
<table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" \
style="border-collapse: collapse; border: none; --darkreader-inline-border-top: \
initial; --darkreader-inline-border-right: initial; \
--darkreader-inline-border-bottom: initial; --darkreader-inline-border-left: \
initial;" data-darkreader-inline-border-topdata-darkreader-inline-border-rightdata-darkreader-inline-border-bottomdata-darkreader-inline-border-left="">
 <tbody>
<tr style="height:15.25pt">
<td width="711" valign="top" style="width: 842.35pt; border: 1.5pt solid rgb(237, \
125, 49); padding: 0in 5.4pt; height: 15.25pt; \
--darkreader-inline-border-top:#9c470e; --darkreader-inline-border-right:#9c470e; \
--darkreader-inline-border-bottom:#9c470e; --darkreader-inline-border-left:#9c470e;" \
data-darkreader-inline-border-topdata-darkreader-inline-border-rightdata-darkreader-inline-border-bottomdata-darkreader-inline-border-left="">
 <p><strong><span style="background: rgb(255, 255, 153); --darkreader-inline-bgimage: \
initial; --darkreader-inline-bgcolor:#545400;" \
data-darkreader-inline-bgimagedata-darkreader-inline-bgcolor="">CAUTION</span></strong><span \
style="background: rgb(255, 255, 153); --darkreader-inline-bgimage: initial; \
--darkreader-inline-bgcolor:#545400;" \
data-darkreader-inline-bgimagedata-darkreader-inline-bgcolor="">:  This email \
originated from outside of the organization. Do not click links or open attachments \
unless you can confirm the sender and know the content is safe.</span></p> </td>
</tr>
</tbody>
</table>
</div>
<br>
<div>
<div dir="auto">
<div>This sounds very interesting. Does this feature work with every GC or&nbsp; does \
the implementation depend on specific GCs (and if the latter, which GCs does your \
prototype currently support).<br> <br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Kemper, William &lt;<a \
href="mailto:kemperw@amazon.com">kemperw@amazon.com</a>&gt; schrieb am Fr., 20. Mai \
2022, 23:46:<br> </div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px \
solid rgb(204, 204, 204); padding-left: 1ex; \
--darkreader-inline-border-left:#3e4446;" data-darkreader-inline-border-left=""> <div \
dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, \
255, 255); font-family: Calibri, Arial, Helvetica, sans-serif; \
--darkreader-inline-color:#e8e6e3; --darkreader-inline-bgcolor:#181a1b;" \
data-darkreader-inline-colordata-darkreader-inline-bgcolor=""> <p>Taking a heap dump \
is a stop the world event. Garbage collection events can provide heap utilization \
information only after a cycle completes. We've found that detailed heap occupancy \
data (such as heap inspections provide) are too expensive to use for production  \
monitoring.&nbsp; Similarly, we find that heap statistics generated from collection \
cycles&nbsp;may come too late and may not provide enough detail (young collections do \
not reflect the state of the old generation). We have developed \
a&nbsp;<em>prototype</em> feature to  provide detailed heap \
metrics&nbsp;<em>concurrently</em><em>, without barriers.</em> It therefore provides \
only an estimate as changes to the object graph may cause it to miss objects. We \
would like to hear the thoughts of serviceability experts on such a thing.  It is \
only at the proof of concept phase, but it is able to run popular benchmarks \
(specjbb, dacapo) with minimal overhead and the estimates are sufficiently accurate \
for our use cases (monitoring heap and object&nbsp;growth rates).<br> </p>
<p><br>
</p>
<p>Thank you for reading,<br>
</p>
<p>William<br>
</p>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic