Hello,

So If I understand you correctly you explicitly invoke System.gc() and get long pauses for that call. Simple Solution: remove the call to System.gc() and tune from there. Worse (possible) solution: try setting -XX:+/ExplicitGCInvokesConcurrent/

Setting /ExplicitGCInvokesConcurrent /may or may not have some unintended side effects. I strongly recommend to remove all calls to System.gc that are not for debugging/maintenance.

Best Regards,

Thorsten

//


Am 28/06/2021 um 19:39 schrieb Stefan Reich:
Hi Thorsten!

Does MaxGCPauseMillis apply to System.gc() too? I thought this was for the incremental collections.

> Did you parse gc logs or by hand/feel?

What, do you think I'm a beginner??? :D

Joke aside, yes it was just "by feel". I know I should measure it properly. Is timing the call to System.gc() an acceptable way to measure this? As far as I know, it only returns after GC has actually completed.

> If you are certain that you don't need more than 800mb of live objects, limit the maxheap to something like 1.5 gb.

Hmm, I am rather not that certain about that... I'd like to keep the max heap around 6 GB.


On Mon, 28 Jun 2021 at 09:35, Thorsten <t...@freigmbh.de <mailto:t...@freigmbh.de>> wrote:

    Hello,

    You should not get seconds long stop the world event. How did you
    measure the pauses? Did you parse gc logs or by hand/feel?

    The desired max pause for g1 can be tuned using

    |-XX:MaxGCPauseMillis=200|

    |, so 200 ms max pause should be the default.
    |

    It would be helpfull if you take gc logs and provide them. What
    java version are you using? In old java versions g1 is fairly bad,
    quality improves in newer versions.

    You can tune and change the garbage collector using -XX Options,
    see for example here
    https://ionutbalosin.com/2020/01/hotspot-jvm-performance-tuning-guidelines/
    
<https://ionutbalosin.com/2020/01/hotspot-jvm-performance-tuning-guidelines/>

    Maybe you find one of the experimental garbage collectors helpfull
    for your application.

    Another simple "Hack" to tune your gc speed: If you are certain
    that you don't need more than 800mb of live objects, limit the
    maxheap to something like 1.5 gb. That way your app is simply
    unable to collect gigabytes of garbage and your max pauses will go
    down.

    Best regards,

    Thorsten



    _______________________________________________
    hotspot-gc-use mailing list
    hotspot-gc-use@openjdk.java.net
    <mailto:hotspot-gc-use@openjdk.java.net>
    https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
    <https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use>



--
Stefan Reich
BotCompany.de // Java-based operating systems
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use@openjdk.java.net
https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

Reply via email to