RFR: 8257774: G1: Trigger collect when free region count drops below threshold to prevent evacuation failures [v9]
Kirk Pepperdine
kirk at kodewerk.com
Mon May 31 21:07:32 UTC 2021
Hi Stefan,
>
> The failing test made me look a bit more at the logs when running with this feature and I found at least one thing I think we need to fix.
>
> What I did was to run SPECjbb2015 with a fixed injection-rate and and with tweaked parameters to force a bit more live objects. Running this with an 8g heap was fine and I saw no "preventive" GCs. Turning the heap size down to 6gb the preventive GCs started to show and we do a lot more GCs with this patch than without, but looking at the total GC time it is pretty similar to before. So not sure how much to care about this.
>
> What I think we should change, or at least discuss is the fact that we now get:
>
> [340,066s][info][gc ] GC(3148) Pause Full (G1 Preventive Collection) 6091M->3082M(6144M) 726,846ms
>
> A "preventive" Full GC looks a bit strange to me, I mean the Full GC occurs because we failed not prevent it. So I think we should avoid using this GC cause for Full collections. What do others think?
This is certainly not preventing a full GC implying that the name is misleading.
At 8G, I’m not sure that I care all that much about a full collection being triggered but it’s at a threshold where I’m going to take notice. At issue is… it’s very unlikely that we’d want to see a full collection when heaps get bigger than this. I’d much rather set a larger reserve or take other measures to prevent the failure rather than endure the penalty of a full collection.
Kind regards,
Kirk
More information about the hotspot-gc-dev
mailing list