gpt4 book ai didi

java - JMX RMI - 内存泄漏 - ArrayNotificationBuffer 随着时间的推移越来越大

转载 作者:行者123 更新时间:2023-11-30 11:42:13 25 4
gpt4 key购买 nike

我正在编写一个应该运行许多小时(10-100)的应用程序,我正在使用 JMX 对其进行监控。

然而,一段时间后,我发现了两件事:

  • com.sun.jmx.remote.internal.ArrayNotificationBuffer#1 变大:20 小时后,它大约为 10MB - 当我启动它时,它小于 1MB
  • 更多线程,如 RMI 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com