Netty 4.0.19.Fone Memory Leak with io.netty.channel.ChannelOutboundBuffer $ Entry

时间:2014-07-13 20:59:46

标签: java memory-leaks netty

我似乎遇到了Netty 4的重复内存问题。我的应用程序向Minecraft服务器查询信息并使用该信息更新数据库。目前,它每10秒创建300个连接请求,并在成功完成这些连接后发送数据包。

我的查询应用程序的上一次迭代使用了Netty 3.2.5,它在不间断运行了几个月,没有任何问题。然而,对于Netty 4,它只耗尽了几个小时才耗尽所有可用资源。以下是通过JMX连接进行内存采样的屏幕截图。

Memory sampling results

正如我们所看到的,io.netty.channel.ChannelOutboundBuffer$Entry占用了大量内存。知道怎么去解决这个问题吗?如果你们需要,我可以提供代码。谢谢!

Stephen C:这不是"如何找到Java内存泄漏的重复"。这与Netty有关,我并没有试图找出如何发现内存泄漏 - 我已经发现了一个Netty。我重新发布了我的问题,以便我有机会得到答案。

1 个答案:

答案 0 :(得分:2)

这可能是由于引用计数对象的错误使用(Netty 4中引入的新原则)。您的频道未正确释放对象。

您可以使用-Dio.netty.leakDetectionLevel=paranoid在Netty中激活自动内存泄漏检测。

请参阅此处的文档:http://netty.io/wiki/reference-counted-objects.html