JVM进程内存持续增长(已经设置了Xmx以及MaxDirectMemory),不抛OOM,24小时之内被kill掉

发布于 2022-09-11 15:50:18 字数 485 浏览 27 评论 0

说明

物理环境 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青萝楚歌 2022-09-18 15:50:18

诸位,散了吧,发现CodeCache默认大小是256m(一口老血)
JMX立竿见影(噗)
先前JMV远程没有配置好,嫌麻烦,就没用(今早试了下,太TM好用了)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文