ZGC Unable to reclaim memory for long time
Per Liden
per.liden at oracle.com
Mon Nov 4 20:40:49 UTC 2019
Hi,
When a workload produces a uniformly swiss-cheesy heap, i.e. where all
parts of the heap have roughly the same amount of garbage, then the GC
will face a situation where there are no free lunches and it will have
to work hard (compact a lot) to reclaim memory. Therefore, the GC will
tolerate a certain amount of fragmentation/waste, in the hope that more
object will die soon, making compaction less expensive (at the expense
of using more memory for a while). How many CPU cycles to spend on
compaction vs. how much memory you can spare is of course a trade-off.
You can use -XX:ZFragmentationLimit to control this. It currently
defaults to 25% and your workload seems to stabilize at 21%. If you want
more aggressive compaction/reclamation, then set the
-XX:ZFragmentationLimit to something below 21. This may or may not be a
good trade-off in your case. The alternative is to give the GC a larger
heap to work with.
cheers,
Per
On 11/4/19 7:56 PM, Sundara Mohan M wrote:
> Hi,
> I ran into this issue where ZGC is unable to reclaim memory for few
> hours/days. It just keep printing "Exception in thread "RMI TCP
> Connection(idle)" java.lang.OutOfMemoryError: Java heap space" and
> Allocation Stall happening on that thread.
>
>
> Here is the metrics which shows for some reason even though there is
> Garbage but it is unable to Reclaim
>
> ....
> [2019-11-04T*08:39:53.986+0000*][1765465.981s][info][gc,heap ]
> GC(112126) Live: - 6366M (78%) 6366M (78%)
> 6366M (78%)
> - -
> *[2019-11-04T08:39:53.986+0000][1765465.981s][info][gc,heap ]
> GC(112126) Garbage: - 1735M (21%) 1735M (21%)
> 1731M (21%)*
> - -
> [2019-11-04T08:39:53.986+0000][1765465.981s][info][gc,heap ] GC(112126)
> Reclaimed: - - 0M (0%)
> 4M (0%)
> ...
>
> [2019-11-04T16:48:53.742+0000][1794805.738s][info][gc,heap ] GC(135520)
> Live: - 6367M (78%) 6367M (78%)
> 6367M (78%)
> - -
> *[2019-11-04T16:48:53.742+0000][1794805.738s][info][gc,heap ]
> GC(135520) Garbage: - 1730M (21%) 1730M (21%)
> 1724M (21%)*
> - -
> [2019-11-04T16:48:53.742+0000][1794805.738s][info][gc,heap ] GC(135520)
> Reclaimed: - - 0M (0%)
> 6M (0%)
>
> Here it was in this state for ~8hours and it is still happening. It says
> has a Garbage of 21G but it is not able to Reclaim it everytime it reclaims
> only 4-6M.
>
> Any idea what might be the issue here.
>
>
> TIA
> Sundar
>
More information about the zgc-dev
mailing list