【发布时间】:2014-07-13 20:59:45
【问题描述】:
我似乎在使用 Netty 4 时反复出现内存问题。我的应用程序向 Minecraft 服务器查询信息并使用该信息更新数据库。目前它每 10 秒创建 300 个连接请求,如果这些连接成功完成,则发送数据包。
我的查询应用程序的前一个迭代使用 Netty 3.2.5,它连续运行了几个月,没有任何问题。然而,使用 Netty 4,它只运行几个小时就会耗尽所有可用资源。这是通过 JMX 连接进行内存采样的屏幕截图。
正如我们所见,io.netty.channel.ChannelOutboundBuffer$Entry 正在使用大量内存。知道如何解决这个问题吗?如果你们需要,我可以提供代码。谢谢!
Stephen C:这不是“如何查找 Java 内存泄漏”的副本。这与 Netty 特别有关,我并不是想找出如何发现内存泄漏——我已经用 Netty 发现了一个。我已重新发布我的问题,以便有机会获得答案。
【问题讨论】:
-
你试过 4.0.21.Final 吗?它有很多修复和改进。另外,请分享堆转储。发送电子邮件至 't at motd dot kr'。
-
是的,请分享堆转储。通过这种方式,我们可以查看更多详细信息。再生产者也会有所帮助。谢谢!
-
我将尝试 4.0.21.Final 并在几个小时的测试后报告。我将堆转储通过电子邮件发送给了 Trustin。诺曼,直接链接在这里:dl.dropboxusercontent.com/u/6188711/heapdump.hprof
-
我可以提供重现问题的源代码,但是这个程序本质上会占用大量带宽,而且它不太可能在具有家庭互联网连接的开发机器上正常运行。我也可以提供JMX连接细节供大家使用。
-
Netty 4.0.21.Final 在大约一个小时后崩溃了。同样的原因,我采样到来自
Bootstrap.connect
标签: java memory-leaks netty