[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-hotspot-runtime-dev
Subject:    Re: RFR(s): 8189864: Provide an ascii map to visualize metaspace fragmentation
From:       coleen.phillimore () oracle ! com
Date:       2017-10-31 19:18:49
Message-ID: c62a9672-6438-096e-f500-f36873000f52 () oracle ! com
[Download RAW message or body]


This change looks good.
Coleen

On 10/30/17 8:49 AM, Lindenmaier, Goetz wrote:
> Hi Thomas,
>
> the change looks good and I know we have made good use of this
> already.
>
> Can you look into the chunks? It could be useful to know that,
> for example, a medium chunk is used by a  class loader, but
> still mostly empty (i.e., empty but not free).  Well, there is no
> third variant after lower and upper case,  but maybe empty
> parts could be indicated in the line with the dots by 'e's (obviously
> at the granularity of small chunks).
>
> Thanks,
>    Goetz.
>
>> -----Original Message-----
>> From: hotspot-runtime-dev [mailto:hotspot-runtime-dev-
>> bounces@openjdk.java.net] On Behalf Of Thomas Stüfe
>> Sent: Wednesday, October 25, 2017 6:52 AM
>> To: hotspot-runtime-dev@openjdk.java.net
>> Subject: RFR(s): 8189864: Provide an ascii map to visualize metaspace
>> fragmentation
>>
>> Hi all,
>>
>> could I please have your thoughts and reviews for this enhancement:
>>
>> Issue:  https://bugs.openjdk.java.net/browse/JDK-8189864
>> Webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8189864-
>> metaspace-map/webrev.00/webrev/
>>
>> At SAP, we added a something we call a metaspace map to the metaspace
>> analysis functions. This is a very simple ASCII print of the metaspace
>> layout. It shows the composition of the VirtualSpaceNodes on a chunk basis.
>> It facilitates examining fragmentation and has been proven useful when
>> experimenting with the metaspace allocator.
>>
>> This change adds the map printing code and invokes it if a Metaspace OOM
>> occurs and -Xlog:gc+metaspace+freelist=debug is active (in this case, we
>> already print out a bunch of things). We also may consider adding this to
>> NMT or as a jcmd addition, but I did not want to overload the patch.
>>
>> Example output looks like this (mind that this will only make sense with a
>> monospaced font). Dots indicate starts of chunks. Letters indicate chunk
>> type - (H)umongous, (M)edium, (S)mall (X)specialized - with lower case
>> letters indicating
>> a free chunk, upper case letters indicating a chunk in use.
>>
>> 0x0000000100000000:   ......
>>                        xxxxxxHHHHHHHHHHHHHHHHHHHHHHHH
>> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> HHHHHHHHH
>> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> 0x0000000100020000:
>>                        HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> HHHHHHHHH
>> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> 0x0000000100040000:
>>                        HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> HHHHHHHHH
>> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
>> 0x0000000100060000:   . . . . . . . . . . . . . .
>>                        SSSSSSSSSSSSMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMSSSSSSSSMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> M
>> 0x0000000100080000:   . . . .
>>                        MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMmmmmmmmmmmmmmmmm
>> mmmmmmmmmmmmmmmmMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> M
>> 0x00000001000a0000:   . . . .
>>                        MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> M
>> 0x00000001000c0000:   . . . .
>>                        MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMmmmmmmmmmmmmmmmm
>> mmmmmmmmmmmmmmmmMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> M
>> 0x00000001000e0000:   . . . .
>>                        MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> M
>> 0x0000000100100000:   . . . . . . . . . . . . . . . . . . . . . . . .
>>                        MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMMMMSSSSMMMMMMMMMMMMM
>> MMMMMMMMMMMMMMMMMMMSS
>> SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
>> 0x0000000100120000:   . . . . . . . . . . . . . . . . . . . . . . . . . . .
>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
>>                        SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
>> SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
>> SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
>>
>>
>> Thank you!
>>
>> Thomas

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic