龙空技术网

生产环境宕机问题处理系列之Websphere查看javacore,heapdump文件

汪藏海天 90

前言:

现在朋友们对“java获取文件全路径”大体比较注意,各位老铁们都想要分析一些“java获取文件全路径”的相关资讯。那么小编也在网络上搜集了一些对于“java获取文件全路径””的相关文章,希望咱们能喜欢,你们快快来学习一下吧!

由于近些年项目系统陈旧,线上生产环境运行不稳定,经常需要生成javacore和heapdump文件,以便分析jvm的运行状态查找卡慢宕机问题。其中javacore文件中给出jvm线程的详细情况,是关于CPU的,而heapdump文件则给出jvm的运行时内存的使用情况,关于内存的,对分析JVM的内存泄漏有重要的作用。

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

JavaCore文件一般是文本文件,可以直接用文本编辑工具查看,也可以使用IBM的TMDA(ThreadDumpAnalyser)工具进行分析,一般JavaCore文件生成两个比较有效,可以对比这两个JavaCore文件,来对比哪个线程“卡”住了。

HeapDump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况,主要用来分析大对象长时间不释放导致的内存不足,堆栈溢出,以及高频触发Full GC从而导致CPU使用率过高,JVM崩溃等问题。

这种文件需要相应的工具进行分析,如IBM Heap Analyzer这类工具。这类文件最重要的作用就是分析系统中是否存在内存溢出的情况。

关于两种文件的生成方法以及查看工具如下:

一、生成javacore文件找到安装目录WebSphere/AppServer/bin/wsadmin.sh 此处如果多个节点,需要进入到对应的程序部署节点下,如:/IBM/WebSphere/AppServer/profiles/AppSrv04/bin/wsadmin.sh

执行sh wsadmin.sh

输入命令 wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]

输入命令 wsadmin>$AdminControl invoke $jvm dumpThreads

安装目录\WebSphere\AppServer\profiles\default下生成javacore文件(例:javacore.20090804.111947.2632.txt)

用TMDA(ThreadDumpAnalyser)工具进行分析

下载地址:

运行方式:cd javacore文件分析器放置路径 java –Xmx1000m –jar jca457.jar

二、生成heapdump文件安装目录WebSphere/AppServer/bin/wsadmin.bat

输入命令 wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]

输入命令 wsadmin>$AdminControl invoke $objectName generateHeapDump

安装目录\WebSphere\AppServer\profiles\default下生成HeapDump文件(例:heapdump.20090804.113353.2632.phd)

用IBM HeapAnalyzer内存分析工具对heapdump文件进行分析

下载地址:

运行方式:cd heapdump文件分析器放置路径 java –Xmx1000m –jar ha456.jar

标签: #java获取文件全路径