没有合适的资源?快使用搜索试试~ 我知道了~
系统内存溢出的分析方法和修改建议
资源详情
资源评论
资源推荐
1、 OOM 分析前提的两个文件
javacore 文本文件和 heapdump 二进制文件;
2、 两个文件说明
java 程序运行时,有时会产生 javacore 及 heapdump 文件,java 程序
在遇到致命问题时,就会产生这两个文件,有时产生时,java 应用不会死掉,
还能继续运行,有时则 java 进程会死掉,即 java 进程被杀死。为了能够保留
java 应用发生致命错误前的 java 的运行状态,jvm 在死掉前产生两个文件,
分别为 javacore 及 heapdump 文件。
javacore 文件主要保存的是 java 应用各线程在某一时刻的运行的位置,即执
行到哪一个类的哪一个方法哪一个行上。javacore 是一个文本文件,打开后可
以看到每一个线程的执行栈,以 stacktrace 的方式显示,也可以通过 jarb 包
jca457.jar 图形化显示。通过对 javacore 的分析可以得到应用是否“卡”在某一
点上,即在某一点运行的时间太长,如数据库查询,长期得不到响应,最终导
致系统崩溃。
heapdump 文件是一个二进制文件,它保存了某一时刻 jvm 堆中对象情况,
这种文件需要相应的工具进行分析,用得较多的是 heap analyzer 这个工具。
这 个 文 件 最 重 要 的 作 用 就 是 分 析 系 统 是 否 存 在 内 存 溢 出 的 情 况 , 通 过
heapanalyzer 可以很简单地分析出溢出的位置。
3、 两个文件的生成方式
这两个文件也可以手工的方式生成,经常我们会遇到系统变慢或无响应的情况,
这个时候就以采用手工的方式生成 javacore 及 heapdump 文件,通过对这两
个文件的分析,查出原因进而解决问题,在 unix/linux 上,产生这两个文件的
方法是首先,ps -ef|grep java 找出 java 进程 id ,然后再执行 kill -3 进程号
的操作,等文件生成后再做一次同样的操作,再产生一组文件,两组文件在分
析 javacore 时特别有效,困为它可以看出在先后两个时间点上,线程执行的
位置,如果发现先后两组数据中同一线程都执行在同一位置,则说明此处可能
有问题,因为程序运行是极快的,如果两次均在某一点上,说明这一点耗时是
很大的。
Ps:Hence to avoid such detecon of caches as memory leaks one needs to take mulple dumps,
and avoid if possible taking dumps at startup or right aer startup, as this is the me when the caches
and object pools will start to ll.
避免系统刚启动时生成这两个文件,因为此时内存正在填充数据,是不正确的,最好生成多个
dump 文件,对比分析。
4、 分析方法和结果
A、先分析 javacore 的文本文件,
如郑州电票系统 OOM 生成的文件,
javacore.20160802.121638.10813452.0002.txt
javacore.20160802.121640.10813452.0005.txt
javacore.20160802.121643.10813452.0008.txt
javacore.20160802.121646.10813452.0011.txt
javacore.20160826.122323.46202884.0002.txt
参考文档:javacore 分析.docx,通过 Javacore 诊断线程挂起等性能问题.html,见附件
图 形 化 显 示 javacore 文 本 文 件 的 方 法 , 使 用 ibm 提 供 的 jvm 线 程 分 析 jar 包 工 具 ,
jca457.jar,附件中提供,
如,我的 jca457.jar 的存放路径为:D:\jca37
Cmd 中执行命令:
D:
cd D:\jca37
java -Xmx1000m -jar jca457.jar
打开 jca457.jar 后显示如图:
通过该工具打开 javacore*.txt 文件,如图:
点击相应的 javacore*.txt 文件,显示该线程的相应信息,如图:
比较时间上靠近的两个 javacore*.txt 的线程信息,选中需要比较的两个 javacore*.txt 文件,
鼠标右键,如图:
剩余16页未读,继续阅读
雪昕缘
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0