RFR: 8324995: Shenandoah: Skip to full gc for humongous allocation failures [v3]
Kelvin Nilsen
kdnilsen at openjdk.org
Thu Feb 8 22:03:03 UTC 2024
On Wed, 31 Jan 2024 21:50:06 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> Shenandoah degenerated cycles do not compact regions. When a humongous allocation fails, it is likely due to fragmentation which is better addressed by a full gc.
>
> William Kemper has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix typo in comment
I ran an experiment in which I discourage full GC. Attached is the diff from this branch, and an spreadsheet summarizing the performance results. HIghlights:
1. I overrode the default ShenandoahFullGCThreshold with 64 on the command line.
2. should_degenerate_cycle() only returns false if a humongous alloc failed and the cumulative requested humongous size > the amount of humongous memory available at the most recent free-set rebuild operation, or if consecutive_degen_count > ShenandoahFullGCThreshold. (This mostly preserves existing behavior, but gives users the option of increasing ShenandoahFullGCThreshold as I did.)
3. Across almost all latency metrics, the new code performs better than original code.
4. Full GCs decreased to a maximum of 4 on any run, whereas the original max full gc was 104. Average number of full GCs decreased to ~3 from typically more than 50.
5. We do quite a few more degens and fewer successful concurrent GCs.
6. More testing should be done with more diverse workloads, and after we fix the existing problem with VM_HandshakeAllThreads::do_it().
See attached diff file and excel spreadhsheet for more detail.
[discourage-full-experiment.xlsx](https://github.com/openjdk/jdk/files/14215043/discourage-full-experiment.xlsx)
[discourage-full-experiment.diff.txt](https://github.com/openjdk/jdk/files/14215058/discourage-full-experiment.diff.txt)
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17638#issuecomment-1934998244
PR Comment: https://git.openjdk.org/jdk/pull/17638#issuecomment-1935000164
More information about the hotspot-gc-dev
mailing list