arthas用来动态调试很好用
安装arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar #--repo-mirror aliyun --use-http
安装idea插件
官方文档
Java直接内存溢出的诊断
netty相关的直接内存溢出诊断很方便,没有用netty的直接内存溢出诊断可以用下面的方法:
options unsafe true
stack java.nio.ByteBuffer allocateDirect -n 5
找到频繁申请直接内存的地方,就是可以的点。之前遇到的一个case是Hbase的客户端申请的直接内存因为一直没有GC得不到回收,通过此方法找到了,当时对排查的人惊为天人。