1:下载IBM HeapAnalyzer分析工具包:ha453.jar包
进入jar包目录-->用cmd命令:java -Xmx800m -jar ha453.jar -->运行后打开heapDump文件:java_pid4944.hprof 【下面是生成heapDump文件的方法】
方法一:
如果手动启动tomcat则
打开win7:tomcat/bin/catalina.bat【Linux:catalina.sh】中添加下面设置set JAVA_OPTS=-XX:+HeapDumpOnOutOfMemoryError
如果用Eclipse启动Tomcat则
Preferences --> Installed JREs --> Edit当前项目的jdk jar包
--> 设置Default VM Arguments:-XX:+HeapDumpOnOutOfMemoryError
【解释:-XX:+HeapDumpOnOutOfMemoryError:当程序抛出heap dump space异常时,会生成一个hprof文件:如java_pid4944.hprof,位置可能在classpath或tomcat/bin】
方法二:
进入JDK安装目录:C:\Program Files\Java\jdk1.6.0_45\bin -->双击:jconsole.exe 【图形工具很好用】
连接:org.apache.catalina.startup... --> MBean -->com.sun.management>HotSpotDiagnostic>操作>dumpHeap中,点击 dumpHeap按钮。
生成的dump文件在jdk1.6.0_45\bin目录下面
方法三:
使用$JAVA_HOME/bin/jmap -dump来触发,eg:jmap -dump:format=b,file=/home/longhao/heamdump.out <pid>
方法四:
使用hprof。启动虚拟机加入-Xrunhprof:head=site,会生成java.hprof.txt文件。该配置会导致jvm运行非常的慢,不适合生产环境。