java进程内存泄漏排查

  • 查看一个进程的内存占用每隔interval秒显示一次:
    top -d ${interval} -p ${pid}
  • 使用jmap查看各个对象占用内存情况,输出到live文件:
    jmap -histo:live ${pid} > live
  • 根据live文件中显示的占用内存最多的对象,分析其是由哪些类造成的。首先用jmap将堆内存dump下来到heap文件:
    jmap -dump:live,format=b,file=heap ${pid}
  • 使用jhat分析:jhat heap。jhat会启动一个7000端口的server,访问ip:7000可以查看堆内存情况。默认显示非平台的类(jdk的类不显示),在网页最下面可以查看平台的类,找到占用内存最大的那个类,点进去,最终找到是哪个类造成该类内存泄漏。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容