Talk Proposal: Taming Metaspace

Thomas Stüfe thomas.stuefe at gmail.com
Sat Nov 23 10:10:39 CET 2019


* Title:

Taming Metaspace: a look at the machinery, and a proposal for a better one

* Abstract:

When examining memory footprint of a JVM process, the delta between Java
heap usage and actual working set size can be surprisingly large. The JVM
uses off-heap memory for a lot of things: thread stacks, compiler arenas,
code heap, byte buffers, GC control... however, one of the largest
consumers of off-heap memory can be class metadata. Class metadata are
stored in Metaspace, which includes the Compressed Class Space.

The talk will explore what Metaspace actually is and what is stored there;
describe the architecture of the Metaspace allocator and the Compressed
Class Space; how it interacts with the GC; how it is sized. We will
highlight waste areas and demonstrate how to use jcmd to examine Metaspace
internals.

The current implementation of the Metaspace allocator suffers from a number
of shortcomings. They can manifest in excessive waste and a certain
"clinginess" - an unwillingness to let go of unused memory.

At SAP, we developed an improved version which is more frugal with memory
and provides a much improved elasticity. So the second part of this talk
will concentrate on our new implementation. We will highlight the
differences to the old architecture, demonstrate advantages and examine how
it works.

* Recording me on audio and/or video
acceptable under a CC-BY-2.0 license

* Brief Bio
Thomas is a JVM developer at SAP and a long time OpenJDK committer. He has
worked with JVMs for the last fifteen years.

* Microblog URL
twitter.com/tstuefe

* Blog URL
stuefe.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fosdem.org/pipermail/java-devroom/attachments/20191123/ad45cd7b/attachment.html>


More information about the java-devroom mailing list