系统有时会遇到OutOfMemoryError,Java堆溢出了。我们需要找到造成OutOfMemoryError原因。一般有两种情况:
1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收;
2、内存溢出,内存中的对象都还必须存活着,这说明Java堆分配空间不足,检查堆设置大小(-Xmx与-Xms),检查代码是否存在对象生命周期太长、持有状态时间过长的情况。
想在泄漏未发生前,取堆转储文件分析, 通过jvm参数-XX:+HeapDumpOnOutOfMemoryError(XX:+HeapDumpOnCtrlBreak不知道为什么tomcat启动不了)可以让JVM在出现内存溢出是Dump出当前的内存转储快照。
当然也可以通过用jmap生产dump文件。windows通过任务管理器查看tomcat的进程pid,linux用ps命令查看进程pid,然后用jmap命令(Java5:jmap -heap:format=b <pid>;Java6:jmap -dump:format=b,file=HeapDump.bin <pid>)
在tomcat中设置jvm参数
linux系统中
1.打开/tomcat_home/bin/catalina.sh文件
2.加上:JAVA_OPTS="$JAVA_OPTS -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump"
如下图位置:
注:其中不设-XX:HeapDumpPath时,dump出的文件在/tomcat_home/bin目录下
Windows系统中
1.打开/tomcat_home/bin/catalina.bat文件
2.加上:set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump
如下图位置:
分析dump出来的内存快照文件
可以使用分析工具进行分析,如:
Eclipse的MAT
下载地址:http://www.eclipse.org/mat/downloads.php
说明文档:http://www.vogella.com/articles/EclipseMemoryAnalyser/article.html#example_project
注意:解析过大的HeapDump可能导致Eclipse抛出OutOfMemory的错误。这时你需要手动调整Eclipse的缓存大小,可以参考官网给出的处理方式(原文连接)
Alternatively, edit the MemoryAnalyzer.ini
to contain:
-vmargs
-Xmx2g
-XX:-UseGCOverheadLimit
Eclipse插件版打不开的朋友可以试试
RPC版的MAT (我的232m的dump文件也打不开,难道非得用64bit的机器吗?):RPC版MAT下载地址 。
JProfile
等等;
- 大小: 5.6 KB
- 大小: 5 KB
分享到:
相关推荐
heapdump文件分析工具(最新2012-12-18) 用于分析OOM内存溢出的错误
通过heapdump工具分析服务器堆分配问题
javacore文件及heapdump文件分析
heapdump分析工具------HeapAnalyzer: 2014年1月最新发布 用法: 在命令行执行 java -Xmx500m -jar ha453.jar
websphere javacore与heapdump文件分析工具,jca是javacore分析工具,ha是heapdump分析工具,需要用jdk1.6打开
heap dump: heap dump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况。HeapDump文件是指定时刻的Java堆栈的快照,是一种镜像文件。
使用方法如下: ...python native_heapdump_viewer.py --symbols symbols 00.txt >00.log python native_heapdump_viewer.py --symbols symbols 01.txt >01.log 对比00.log和01.log,查看内存增长的点
webshpere在内存溢出的时候会产生heapdumpdump文件,通过这个工具可以分析这些文件。
IBM HeapDump分析工具 java应用在内存泄露时会生成heapdump文件,分析heapdump文件,成为定位哪些对象占用了太多的堆栈空间的重要手段
heap Analyzer heapdump分析工具
在我们的应用程序发生内存泄露的时候,会生成heapdump文件 2,IBM的Thread and Monitor Dump Analyzer for Java工具 在一些平台上,在有些情况下,javacore也被称为javadump,它包含jvm和应用程序相关的在特定时刻的...
JavaCore和HeapDump分析工具
IBM heapdump分析工具 能够分析IBM dump 文件
ibm websphere 服务器内存溢出或其他故障,生成heapdump,分析工具
heapdump分析工作heapanalyzer的使用及工具 java -Xmx1000m -jar ha443.jar
jmap -dump:format=b,file=heapdump.hprof Pid;生成一个关于此进程的堆栈使用情况;使用工具做出对比
软件介绍: IBM websphere 服务器出现内存溢出或其他故障时,会生成heapdump文件,本工具用于分析heapdump,查找错误原因。运行IBN WEBSPHERE HEAPDUMP需要安装JDK1.8框架。
ha25.zip-分析heapdump日志。对分析java内存溢出有帮助。