服务器程序最近每隔一段时间就出现OOM Java heap space的问题。
一、首先到catalina.bat里面调整tomcat的堆内存参数:
-Xmx1536m -Xms1536m -Xmn1024m -XX:SurvivorRatio=4
弱发现还是无法解决问题;
添加如下信息打印出一个dump文件
-Xmx1536m -Xms1536m -Xmn1024m -XX:SurvivorRatio=4 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=路径 //此处可以写一个文件夹的路径会自动生产dump文件
-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log
//此处可以写一个文件夹的路径会自动生产dump文件
通过eclipse的mat内存分析工具可以直接打开生成的dump文件
首先需要下载MAT
打开Window-perspective-Open perspective-others-Memory Analysis
通过Histogram、Dominator tree、Leak Suspects基本就可以看出是哪块代码出了问题。