[POSSIBLY SPAM: SPF] hotspot-gc-use Digest, Vol 143, Issue 1
Thorsten
tg at freigmbh.de
Tue Jun 29 12:57:32 UTC 2021
Hello,
Basicly System.gc will no longer be able compact your memory or free up
as much as possible. You or a customer or a thirdparty may have a
usecase where thats desirable and now they can no longer do this.
https://ionutbalosin.com/2020/01/hotspot-jvm-performance-tuning-guidelines/
Also mentions something about native buffers, I dont know how accurate
this is, how it works with concurrent, and how relevant it is for your
application.
Just like Thomas I would recommend to use another garbage collector
(Your usecase is basicly the reason they exist) and or analyze your
problem correctly (collect gc logs) ||//Basicly try to solve the problem
and and not to just hide the symptoms.
I am not an expert in that matter but setting |-XX:-G1UseAdaptiveIHOP|
and |-XX:InitiatingHeapOccupancyPercent| to something very low like 15
might be a better alternative to call System.gc in a loop.||
Best regards,
Thorsten
//
Am 29/06/2021 um 14:04 schrieb Stefan Reich:
> 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
> <mailto: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
>> <mailto: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/
>> <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
>> <mailto:hotspot-gc-use at 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
>
>
>
> --
> 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/6feb04b7/attachment.htm>
More information about the hotspot-gc-use
mailing list