1回复
4年前
JVM进程内存持续增长不抛OOM
我有个程序(没有源码),底层用到了Netty(不要被误导成一定是NIO的问题,只是说明下可能和DirectMemory有关),没有其他JNI方法,启动参数为:
-Xmx1200m -Xms1200m -XX:MetaspaceSize=128M -XX:MaxDirectMemorySize=100m
刚启动的时候,内存保持在1200左右,物理机剩余内存400m(free -m)左右整体为2G,经过一段时间后(大约一天,期间进行NIO操作),内存持续增长,期间我看过一次,增长到1.5G了,再之后一段时间就被kill掉了,具体被kill掉的时候占用多大内存没注意。
按理说我设置了堆最大内存和直接内存,一般情况下,如果内存不够,会直接抛OOM,不会一直增长啊。堆外内存的剩余部分我觉得不会增长这么多吧,超出设定的内存至少200M,这有点多吧,还是说这是正常现象?
3218 阅读