Sorting out memory of a Java process

Day 1 /  / Track 1  /  RU

Does JVM parameter -Xmx4G mean that the process will take less than 4 GB in the system? Of course not. What else can take in virtual memory and, more importantly, how much of it? This question becomes even more pressing when you need to distribute resources between multiple processes or try to run Java in container.

Besides the virtual machine itself libraries and user apps can also be greedy for memory. You can easily notice Java objects leak with the help of Heap Dump, but the native memory leak can leave your head spinning.

In this talk we'll explore which structures of the virtual machine take in virtual memory, how to monitor and manage its consumption. We'll study different strategies of virtual memory management and learn what was changed in the new versions of JDK. We'll examine the real cases of native memory leak and get to know the tools of allocations analysis.

Download presentation
Andrey Pangin

Leading software engineer at Odnoklassniki, specializes in the development of high-loaded Java servers. Due to the experience he got while working at Oracle in HotSpot team, knows JVM like the back of his hand and is fond of sharing his expertise during various conferences. Authors one-nio and async-profiler projects, leads in the #JVM category on Stack Overflow.

Speaker's previous talks