JVM进程内存持续增长(已经设置了Xmx以及MaxDirectMemory),不抛OOM,24小时之内被kill掉
说明
物理环境 2G内存
现象描述:
我有个程序(没有源码),底层用到了Netty(不要被误导成一定是NIO的问题,只是说明下可能和DirectMemory有关),没有其他JNI方法,启动参数为
-Xmx1200m -Xms1200m -XX:MetaspaceSize=128M -XX:MaxDirectMemorySize=100m
刚启动的时候,内存保持在1200左右,物理机剩余内存400m(free -m)左右,经过一段时间后(大约一天,期间进行NIO操作),内存持续增长,期间我看过一次,增长到1.5G了,再之后一段时间就被kill掉了,具体被kill掉的时候占用多大内存没注意。
按理说我设置了堆最大内存和直接内存,一般情况下,如果内存不够,会直接抛OOM,不会一直增长啊。堆外内存的剩余部分我觉得不会增长这么多吧,超出设定的内存至少200M,这有点多吧,还是说这是正常现象?
请诸位大佬解惑%%
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
诸位,散了吧,发现CodeCache默认大小是256m(一口老血)
JMX立竿见影(噗)
先前JMV远程没有配置好,嫌麻烦,就没用(今早试了下,太TM好用了)