[POSSIBLY SPAM: SPF] hotspot-gc-use Digest, Vol 143, Issue 1
Stefan Reich
stefan.reich.maker.of.eye at googlemail.com
Tue Jun 29 12:04:26 UTC 2021
Hi Thorsten,
yes I used to call System.gc() once a minute. I just like to see correct
heap usages. However, for the server, I removed the call because I didn't
like the delays (they are around or slightly above 2 seconds BTW - actually
measured this tiime :).
I have just tried XX:+ExplicitGCInvokesConcurrent. I think it's good; seems
to do the job. So my problem may actually be solved. I'll keep monitoring.
> Setting *ExplicitGCInvokesConcurrent *may or may not have some unintended
side effects.
Please elaborate, what could those be? I am not aware of any side effects.
I need concrete information.
Best wishes,
Stefan
On Tue, 29 Jun 2021 at 09:16, Thorsten <tg at freigmbh.de> wrote:
> 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 <tg at 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/
>>
>> 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 at openjdk.java.net
>> https://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
>>
>
>
> --
> Stefan Reich
> BotCompany.de // Java-based operating systems
>
>
--
Stefan Reich
BotCompany.de // Java-based operating systems
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20210629/5c67677b/attachment.htm>
More information about the hotspot-gc-use
mailing list