Hi @LoadingZhang,
thanks for reporting back on this. Unfortunately, I made a mistake in my original post in that InitiatingHeapOccupancyPercent
should really have been set to 30. I have edited my post above to avoid confusion if others read this post.
The JVM should auto-tune this parameter after a while, it only uses the original IHOP value until it has a better estimate of what it should be itself. So your test is certainly still valuable, confirming that the G1ReservePercent
does reserve enough heap to avoid circuit breaking in your case.
I have not looked too much into ZGC yet, since it still has experimental status. You will need something like the SoftMaxHeapSize
option to make it compatible with real memory circuit breaker. Also, you should notice that ZGC does not support compressed oops, meaning you will likely need more heap since all references need 64 bits rather than 32 bits. This will also in itself lead to some performance degradation (reduced cpu cache efficiency and more data to fetch from RAM).