RFR(s): 8189864: Provide an ascii map to visualize metaspace fragmentation
Lindenmaier, Goetz
goetz.lindenmaier at sap.com
Mon Oct 30 12:49:36 UTC 2017
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 at openjdk.java.net] On Behalf Of Thomas Stüfe
> Sent: Wednesday, October 25, 2017 6:52 AM
> To: hotspot-runtime-dev at 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
More information about the hotspot-runtime-dev
mailing list