作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个应该运行许多小时(10-100)的应用程序,我正在使用 JMX 对其进行监控。
然而,一段时间后,我发现了两件事:
com.sun.jmx.remote.internal.ArrayNotificationBuffer#1
变大:20 小时后,它大约为 10MB - 当我启动它时,它小于 1MBRMI TCP Accept-0
(或任何其他数字)和 RMI-TCP-Connection(44)-[IP]
随着时间的推移被实例化。我在想,这与应用程序的不同连接有关,但目前我只连接了一次,但有些连接似乎仍处于打开状态。
怎么可能呢?我该如何解决这个问题?
最佳答案
我正在查看 ArrayNotificationBuffer 的源代码注释并且它有相当数量的 JMX 跟踪记录,所以你可能想要 enable JMX tracing更好地了解正在发生的事情。
您可能会发现 this known bug正在影响你。错误报告表明在长期连接上观察到该问题。提到了几个变通办法,尽管更简单的变通办法不是,如果对您来说可行的话,那就是定期断开连接并重新连接。好消息是似乎有一个 patch对于 Java7 中的这个,虽然我不确定它是否已经达到发布版本。
如果您正在注册 JMX 通知监听器,我还会确保它们会持续并及时地处理通知。如果不这样做,也可能会导致此症状。
关于java - JMX RMI - 内存泄漏 - ArrayNotificationBuffer 随着时间的推移越来越大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883798/
我是一名优秀的程序员,十分优秀!