我为生产中的泄漏检测添加了-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
,但是没有上面的内存泄漏记录日志。
答案 0 :(得分:1)
要检测我的开发环境中的泄漏,我已使用此vm参数将堆大小减小到12 MB:-mx12m
现在有了这个,Netty能够发现一些漏洞。
答案 1 :(得分:0)
日志意味着你有内存泄漏,所以是的,有泄漏。您可以通过系统属性(如您所做)或通过ResourceLeakDetector.setLevel(...)
配置泄漏检测。
您无法在本地计算机上看到泄漏可能意味着您看不到与prod服务器上相同的“分配”模式。