生产服务内存泄漏分析过程

https://blog.csdn.net/wangdonghello/article/details/80342035

生产报错:java.lang.OutOfMemoryError: Java heap space

堆内存泄漏一般有以下情况:

1,  堆内存本身没有设置或者配置参数设置不合适,若按默认启动,默认是256m?512m?,而服务本身复杂,不够用

2,  堆中对象死了,但是GC无法回收空间,内存泄漏

3,  服务有大对象,当有过大对象时,而此时堆空间不足,内存溢出、

还有其他情况,上面三种情况都会导致java.lang.OutOfMemoryError错误。

所以针对上述情况排查过程如下:刚开始只是通过简单的jmap,jstat,jstack等命令分别查看了当时服务的堆内存状况,YGC,FGC次数及耗时时间,当时堆栈的情况等,看完之后,没有任何头绪,所以转换思路重新生成dump文件,执行如下命令:

jmap -dump:format=b,file=jconsole.dump pid

 

 

 

 

 下载的工具==》 Eclipse Memory Analyzer

生产的dump文件用专门的工具memory analyzer分析。

 

posted @ 2020-04-21 11:03  大朱<+>Winnie  阅读(131)  评论(0编辑  收藏  举报