如何测试netty内存泄漏

时间:2017-04-28 08:55:36

标签: java memory-leaks netty

我为生产中的泄漏检测添加了-Dio.netty.leakDetection.level=ADVANCED。 还有一些日志:

  

错误io.netty.util.ResourceLeakDetector - 泄漏:ByteBuf.release()在被垃圾收集之前没有被调用。有关详细信息,请参阅http://netty.io/wiki/reference-counted-objects.html。   警告:由于泄漏记录计数限制为4,因此丢弃了4个泄漏记录。使用系统属性io.netty.leakDetection.maxRecords增加限制。   最近的访问记录:5

这是否意味着必须发生内存泄漏?

我想在本地环境中测试它,所以我设置了-Dio.netty.leakDetection.level=PARANOID,但是没有上面的内存泄漏记录日志。

2 个答案:

答案 0 :(得分:1)

要检测我的开发环境中的泄漏,我已使用此vm参数将堆大小减小到12 MB:-mx12m

现在有了这个,Netty能够发现一些漏洞。

答案 1 :(得分:0)

日志意味着你有内存泄漏,所以是的,有泄漏。您可以通过系统属性(如您所做)或通过ResourceLeakDetector.setLevel(...)配置泄漏检测。

您无法在本地计算机上看到泄漏可能意味着您看不到与prod服务器上相同的“分配”模式。

相关问题