JVM process memory continues to grow (Xmx has been set and MaxDirectMemory), is not thrown OOM,24 is dropped by kill within hours)

< H2 > description < / H2 >

physical environment 2GB memory

< H2 > phenomenon description: < / H2 >

I have a program (no source code) that uses Netty at the bottom (don"t be misled into a problem with NIO, but it may be related to DirectMemory), there are no other JNI methods, and the startup parameter is

.
-Xmx1200m -Xms1200m -XX:MetaspaceSize=128M -XX:MaxDirectMemorySize=100m

when you just started, the memory was kept at about 1200, and the remaining memory of the physical machine was about 400m (free-m). After a period of time (about a day, during the NIO operation), the memory continued to grow. During this period, I saw it grow to 1.5g, and then it was dropped by kill for a period of time. I didn"t pay attention to how much memory was taken up when it was dropped by kill.

in theory, I set the maximum memory and direct memory of the heap. In general, if there is not enough memory, the OOM, will not grow all the time. I don"t think the rest of the out-of-heap memory will grow by so much, exceeding the set memory by at least 200m, which is a bit too much, or is this a normal phenomenon?

Please answer%


everyone, let's break up and find that the default size of CodeCache is 256m (a mouthful of old blood)
JMX immediately (poof)
previously JMV remote is not configured properly, so it's useless (tried it this morning, it's too easy to use)

Menu