文档章节

javacore文件及heapdump文件分析

吕猛
 吕猛
发布于 2010/12/13 23:52
字数 640
阅读 4796
收藏 5

java程序运行时,有时会产生javacore及heapdump文件,为什么会产生这些文件呢?产生后应该如何分析呢?本文将回答上面的问题。

java程序在遇到致命问题时,就会产生这两个文件,有时产生时,java应用不会死掉,还能继续运行,有时则java进程会死掉,即java进程被杀死。为了能够保留java应用发生致命错误前的java的运行状态,jvm在死掉前产生两个文件,分别为javacore及heapdump文件。

javacore文件主要保存的是java应用各线程在某一时刻的运行的位置,即执行到哪一个类的哪一个方法哪一个行上。javacore是一个文本文件,打开后可以看到每一个线程的执行栈,以stacktrace的方式显示。通过对javacore的分析可以得到应用是否“卡”在某一点上,即在某一点运行的时间太长,如数据库查询,长期得不到响应,最终导致系统崩溃。

heapdump文件是一个二进制文件,它保存了某一时刻jvm堆中对象情况,这种文件需要相应的工具进行分析,笔者用得较多的是heap analyzer这个工具。这个文件最重要的作用就是分析系统是否存在内存溢出的情况,通过heapanalyzer可以很简单地分析出溢出的位置。

这两个文件也可以手工的方式生成,经常我们会遇到系统变慢或无响应的情况,这个时候就以采用手工的方式生成javacore及heapdump文件,通过对这两个文件的分析,查出原因进而解决问题,在unix/linux上,产生这两个文件的方法是首先,ps -ef|grep java 找出java进程id ,然后再执行kill -3 进程号 的操作,等文件生成后再做一次同样的操作,再产生一组文件,两组文件在分析javacore时特别有效,困为它可以看出在先后两个时间点上,线程执行的位置,如果发现先后两组数据中同一线程都执行在同一位置,则说明此处可能有问题,因为程序运行是极快的,如果两次均在某一点上,说明这一点耗时是很大的。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jjyyaa007/archive/2010/02/25/5323899.aspx

© 著作权归作者所有

吕猛
粉丝 5
博文 8
码字总数 1173
作品 0
南京
高级程序员
私信 提问
利用wsadmin生成javacore,heapdump文件

一、生成javacore文件 安装目录WebSphereAppServerbinwsadmin.bat 输入命令 wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*] 输入命令 wsadmin>$AdminCont......

JAVA枪手
2013/05/26
327
0
JAVA GC(Garbage Collection)及OOM那些事

JAVA运行时内存区域 程序计数器 一块很小的内存空间 当前线程所执行的字节码的行号指示器 当前线程私有 不会出现OutOfMemoryError情况 java虚拟机栈 通常存放基本数据类型,对象引用(一个指...

cloud-coder
2016/06/04
2.6K
5
websphere 通过日志分析内存溢出

首先将服务器上的 phd文件拖至本地 然后执行命令 java -Xmx2800m -jar ha452.jar ../heapdump..phd 其中 heapdump..phd 为服务器phd文件,可查看哪些对象和方法占用内存 ha452.jar 可以通过搜...

道心
2014/04/02
1K
0
使用mat命令行分析heapdump

Mat是分析java堆栈的利器,与jdk自带的工具比较,分析快,占用内存少,各种图形显示有利于定位问题。 但是在真正的线上环境内存配置都比较大,目前上午笔记本内存配置是4G,无法分析线上应用...

yingtju
2018/06/29
0
0
《深入理解Java虚拟机》——JDK自带命令行工具

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储...

戴的天
2014/08/19
4.2K
1

没有更多内容

加载失败,请刷新页面

加载更多

关于运维,该怎么决定它的方向,这个似工作又似兴趣的存在

我之前主要从事网络、桌面、机房管理等相关工作,这些工作使我迷惘,这应该是大多数运维人都经历过的过程; 18年国庆,我从国内前三的消费金融公司裸辞,下海创业,就是想要摆脱这样的困境。...

网络小虾米
14分钟前
3
0
Java Timer的用法

Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("11232"); } }, 200000 , 1000); public void schedule(TimerTask task, long delay......

林词
18分钟前
3
0
使用js动态加载外部js文件以及动态创建script脚本

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。 动态加载外的外...

Bing309
26分钟前
2
0
从零开始入门 K8s | Kubernetes 网络概念及策略控制

作者 | 阿里巴巴高级技术专家 叶磊 一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特...

阿里巴巴云原生
30分钟前
2
0
天气获取

本文转载于:专业的前端网站➨天气获取 $.get("http://wthrcdn.etouch.cn/WeatherApi", { citykey: cityCode }, function (d) { //创建文档对象 var parser = new ......

前端老手
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部