【问题标题】:how to test netty memory leak如何测试netty内存泄漏
【发布时间】:2017-04-28 08:55:35
【问题描述】:

我添加-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,但是没有上面的内存泄漏记录日志。

【问题讨论】:

    标签: java memory-leaks netty


    【解决方案1】:

    为了检测我的开发环境中的泄漏,我使用这个 vm 参数将堆大小减少到 12 MB:-mx12m

    现在,Netty 能够检测到一些泄漏。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多