我似乎遇到了Netty 4的内存问题,我的应用程序会查询“我的世界”服务器的信息,并用这些信息更新数据库。目前,它每10秒创建300个连接请求,如果成功完成这些连接,则发送数据包。
我之前的一个查询应用程序使用了Netty3.2.5,连续运行了几个月,没有任何问题。然而,使用Netty 4,它只运行几个小时就耗尽了所有可用的资源。以下是JMX连接上内存采样的屏幕截图。

正如我们所看到的,io.netty.channel.ChannelOutboundBuffer$Entry正在消耗大量内存。知道如何解决这个问题吗?如果你们需要的话我可以提供密码。谢谢!
Java :这不是“如何查找内存泄漏”的重复。具体而言,这与Netty有关,我并不是想找出如何发现内存泄漏--我已经发现了Netty的内存泄漏。我重新发布了我的问题,这样我就有机会得到答案了。
发布于 2015-11-24 15:30:11
这可能是由于引用计数对象( Netty 4中引入的一种新原理)的错误使用所致。您的频道没有正确地释放对象。
您可以使用-Dio.netty.leakDetectionLevel=paranoid激活Netty中的自动内存泄漏检测。
参见这里的文档:http://netty.io/wiki/reference-counted-objects.html
https://stackoverflow.com/questions/24726973
复制相似问题