如何测试netty内存泄漏

fcb*_*ing 5 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,但是没有上面的内存泄漏记录日志.

Nor*_*rer 0

该日志意味着您有内存泄漏,所以是的,存在泄漏。您可以通过系统属性(就像您所做的那样)或通过ResourceLeakDetector.setLevel(...).

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