G1gc compaction algorithm
Martin Makundi
martin.makundi at koodaripalvelut.com
Fri Aug 8 01:21:52 UTC 2014
Is there any auto tuning parameter that could be activated something like
adaptive sizing policy that would tune all these parameters automatically?
It seems like there is some logic behind tuning and statistics maybe it
could be automatic?
**
Martin
2014-08-08 2:33 GMT+03:00 Yu Zhang <yu.zhang at oracle.com>:
> This is related to how the remember sets are stored in jvm. Coarsening
> is used to reduce memory footprint. But when coarsening happens, the RSet
> operations could be expensive.
>
> Thanks,
> Jenny
>
> On 8/6/2014 5:18 PM, Martin Makundi wrote:
>
> Hi!
>
> Meanwhile, I was wondering what G1RSetRegionEntries and G1RSetSparseRegionEntries
> do, google didn't give much information about those. How do they work and
> which things do they affect?
>
> **
> Martin
>
>
> 2014-08-07 3:14 GMT+03:00 Martin Makundi <
> martin.makundi at koodaripalvelut.com>:
>
>> Hi!
>>
>> Thanks. We were currently running 4M with wastepercent=0 but
>> unfortunately don't have any logs for that.
>>
>> Will try "-XX:G1HeapRegionSize=16m -XX:G1HeapWastePercent=10
>> -XX:G1RSetRegionEntries=1792 -XX:G1RSetSparseRegionEntries=40" and post
>> results later back here.
>>
>> **
>> Martin
>>
>>
>> 2014-08-07 0:53 GMT+03:00 Yu Zhang <yu.zhang at oracle.com>:
>>
>> Martin,
>>>
>>> Thanks for the logs and following up with us.
>>>
>>> In this chart, the purple line is the ScanRS time for mixed gc. At the
>>> bottom there are grey circles indicating when the initial mark happens.
>>> The white is the ScanRS time for mixed gc with to-space exhausted.
>>>
>>>
>>> You can see that the first several scanRS after initial-mark is ok, then
>>> they go up to 7000ms. For the 16m region size runs, you have
>>> G1HeapWastePercent=0. (4m region size has G1HeapWastePercent=1). Because
>>> of this, g1 will not stop mixed gc till there is no candidate regions.
>>> From the space claimed by mixed gc, it claims 2-3g heap, but the price is
>>> too high. Another disadvantage is it does not start marking phases:
>>> "do not request concurrent cycle initiation, reason: still doing mixed
>>> collections, occupancy: 2147483648 bytes, allocation request: 0 bytes,
>>> threshold: 2147483640 bytes (10.00 %), source: end of GC]"
>>>
>>> If you look at the claimable heap in MB, 4m heap region size starts
>>> mixed gc at lower reclaimable
>>>
>>>
>>> Another thing is there are coarsening for RSet Entries.
>>>
>>> Can you do one with
>>> -XX:G1HeapRegionSize=16m -XX:G1HeapWastePercent=10
>>> -XX:G1RSetRegionEntries=1792 -XX:G1RSetSparseRegionEntries=40
>>>
>>> Thanks,
>>> Jenny
>>>
>>> On 8/4/2014 9:33 AM, Martin Makundi wrote:
>>>
>>> Hi!
>>>
>>> Here are the fresh logs:
>>>
>>> http://81.22.250.165/log/gc-16m-2014-08-04.log
>>>
>>> Today we were hit by quite some number of Full GC's with quite short
>>> intervals and as can be suspected, not so happy users ;)
>>>
>>> Any ideas? I will reduce the region size to 4M for now, because it
>>> resulted in much fewer full gcs.
>>>
>>> **
>>> Martin
>>>
>>>
>>> 2014-08-01 1:17 GMT+03:00 Martin Makundi <
>>> martin.makundi at koodaripalvelut.com>:
>>>
>>>> Hmm.. ok, I copy pasted if from the mail, it works after typing
>>>> manually, thanks.
>>>>
>>>> Problem seems to have been BOTH a whitespace typo AND
>>>> UnlockDiagnosticOptions was on the right side.
>>>>
>>>> Thanks.
>>>>
>>>> Gathering logs now.
>>>>
>>>> **
>>>> Martin
>>>>
>>>>
>>>> 2014-08-01 1:01 GMT+03:00 Yu Zhang <yu.zhang at oracle.com>:
>>>>
>>>> maybe some hidden text?
>>>>>
>>>>> Thanks,
>>>>> Jenny
>>>>>
>>>>> On 7/31/2014 2:52 PM, Martin Makundi wrote:
>>>>>
>>>>> Strange that it is in the property summary but doesn't allow setting
>>>>> it.
>>>>>
>>>>>
>>>>> 2014-08-01 0:39 GMT+03:00 Martin Makundi <
>>>>> martin.makundi at koodaripalvelut.com>:
>>>>>
>>>>>> Hi!
>>>>>>
>>>>>> UnlockDiagnosticVMOptions is on (though later (on the right side)
>>>>>> in the command line). Jvm version is
>>>>>>
>>>>>> java version "1.7.0_55"
>>>>>> Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
>>>>>> Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2014-08-01 0:37 GMT+03:00 Yu Zhang <yu.zhang at oracle.com>:
>>>>>>
>>>>>> Martin,
>>>>>>>
>>>>>>> These 2 need to run with -XX:+UnlockDiagnosticVMOptions
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Jenny
>>>>>>>
>>>>>>> On 7/31/2014 2:33 PM, Martin Makundi wrote:
>>>>>>>
>>>>>>> Hi!
>>>>>>>
>>>>>>> G1SummarizeRSetStats does not seem to work, jvm says:
>>>>>>>
>>>>>>> Improperly specified VM option 'G1SummarizeRSetStatsPeriod=10'
>>>>>>> Error: Could not create the Java Virtual Machine.
>>>>>>> Error: A fatal exception has occurred. Program will exit.
>>>>>>>
>>>>>>> Same for both new options
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2014-07-31 20:22 GMT+03:00 Yu Zhang <yu.zhang at oracle.com>:
>>>>>>>
>>>>>>>> Martin,
>>>>>>>>
>>>>>>>> The ScanRS for mixed gc is extremely long, 1000-9000ms. Because it
>>>>>>>> is over pause time goal, minimum old regions can be added to CSet. So
>>>>>>>> mixed gc is not keeping up.
>>>>>>>>
>>>>>>>> Can do a run keeping 16m region size, no
>>>>>>>> G1PrintRegionLivenessInfo, no PrintHeapAtGC. But -XX:+G1SummarizeRSetStats
>>>>>>>> -XX:G1SummarizeRSetStatsPeriod=10
>>>>>>>>
>>>>>>>> This should tell us more about RSet information.
>>>>>>>>
>>>>>>>> While the UpdateRS is not as bad as ScanRS, we can try to push it
>>>>>>>> to the concurrent threads. Can you add
>>>>>>>> -XX:G1RSetUpdatingPauseTimePercent=5. I am hoping this brings the UpdateRS
>>>>>>>> down to 50ms.
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Jenny
>>>>>>>>
>>>>>>>> On 7/28/2014 8:27 PM, Martin Makundi wrote:
>>>>>>>>
>>>>>>>>> Hi!
>>>>>>>>>
>>>>>>>>> We suffered a couple of Full GC's using regionsize 5M (it seems to
>>>>>>>>> be exact looking at logged actual parameters) and we tried the 16M option
>>>>>>>>> and this resulted in more severe Full GC behavior.
>>>>>>>>>
>>>>>>>>> Here is the promised log for 16 M setting:
>>>>>>>>> http://81.22.250.165/log/gc-16m.log
>>>>>>>>>
>>>>>>>>> We switch back to 5M hoping it will behave more nicely.
>>>>>>>>>
>>>>>>>>> **
>>>>>>>>> Martin
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20140808/d57e408a/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 19368 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20140808/d57e408a/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 22281 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20140808/d57e408a/attachment-0003.png>
More information about the hotspot-gc-use
mailing list