BlackChen'site

Redisson 内存泄露问题记录

问题及现象

线上服务运行一段时间之后. 出现服务不可用现象. 查看服务器发现负载很高. 明显超出正常状态

问题定位

  1. 使用top 定位到CPU 飙高的进程

  2. 然后使用 top -H -p pid 定位到了具体是那个线程.

  3. 打印Jstack 后 定位到线程. 发现显示:
    VM Thread os_prio=0 tid=0x00007fe52c42d800 nid=0x1219 runnable

  4. 通过Jstat -gcutil pid 1000 1000 查看GC情况. 发现一直在进行FULL GC

  5. 查看GC 日志后. 发现内存一直回收不掉. 断定发生 内存溢出

  6. 使用 jmap -histo:live pid 命令输出存活对象后发现.io.netty.util.concurrent.FastThreadLocal 对象实例个数异常. 存活数较多.

  7. 排查后. 发现是 Redisson 的BUG, 版本太低,官方已在3.11.4 修复该问题.

解决

升级版本到3.13.6 经验证.未出现改问题.

评论