A java core is a snapshot of the threads at work in a JVM. It also details a cross section of information from the major components in the JVM like XM,XE, LK, etc (IBM Javacore only, Sun does not – it just shows threads)
A Java dump, also known as a Java core, Java thread dump, or a thread dump is a file that contains the following sections:
- All of the threads that run on a Java Virtual Machine (JVM).
- All of the monitors on a JVM.
- Some useful information about the system that the JVM runs under.
A heapdump is a snapshot of JVM memory – it shows the live objects on the heap along with references between objects. It is used to determine memory usage patterns and memory leak suspects.
Generating dumps:
Both can be created by issuing a kill -3 on the PID of the JVM process. There are other ways to gather these docs as well (wsadmin scripts)
If the kill command does not produce the dumps, you can always generate one with a JACL/Jython script via the wsadmin interface
JACL
set jvm $AdminControl completeObjectName type=JVM,*
$AdminControl invoke $jvm dumpThreads
set jvm $AdminControl completeObjectName type=JVM,*
$AdminControl invoke $jvm generateHeapDump
Jython
jvm = AdminControl.completeObjectName(‘type=JVM,process=server1,*’)
AdminControl.invoke(jvm, ‘dumpThreads’)
The heapdump and a javacore should be created in the WebSphere/AppServer directory. You can confirm this by reviewing the verbose GC output after issuing the kill command.
ThreadAnalyzer:
- ThreadAnalyzer is a problem determination tool for WebSphere Application Server thread performance and deadlock detection. You can use it to obtain a Java dump from an application server and use its analysis features for problem determination. For performance problem determination, ThreadAnalyzer provides a top-of-the-stack (TOS) analysis that counts all of the methods at the top of the stack for the listed threads.
- It then sorts them by ‘weight’ (automatically computed by ThreadAnalyzer), and lists the possible performance bottlenecks in your application. ThreadAnalyzer does automatic deadlock detection while it analyzes the Java dump.
Downloading ThreadAnalyzer
To download ThreadAnalyzer go to
http://www.ibm.com/developerworks/websphere/downloads/thread_analyzer.html
What is IBM Thread and Monitor Dump Analyzer for Java?
- During the run time of a Java™ process, some Java Virtual Machiness (JVMs) may not respond predictably and oftentimes seem to hang up for a long time or until JVM shutdown occurs. It is not easy to determine the root cause of these sorts of problems.
- By triggering a javacore when a Java process does not respond, it is possible to collect diagnostic information related to the JVM and a Java application captured at a particular point during execution. For example, the information can be about the operating system, the application environment, threads, native stack, locks, and memory. The exact contents are dependent on the platform on which the application is running.
- On some platforms, and in some cases, javacore is known as “javadump.” The code that creates javacore is part of the JVM. One can control it by using environment variables and run-time switches. By default, a javacore occurs when the JVM terminates unexpectedly. A javacore can also be triggered by sending specific signals to the JVM. Although javacore or javadump is present in Sun Solaris JVMs, much of the content of the javacore is added by IBM and, therefore, is present only in IBM JVMs.
- IBM Thread and Monitor Dump Analyzer for Java analyzes javacore and diagnoses monitor locks and thread activities in order to identify the root cause of hangs, deadlocks, and resource contention or monitor bottlenecks.
How does it work?
- This technology analyzes each thread information and provides diagnostic information, such as current thread information, the signal that caused the javacore, Java heap information (maximum Java heap size, initial Java heap size, garbage collector counter, allocation failure counter, free Java heap size, and allocated Java heap size), number of runnable threads, total number of threads, number of monitors locked, and deadlock information.
- In addition, IBM Thread and Monitor Dump Analyzer for Java provides the recommended size of the Java heap cluster (applicable only to IBM SDK 1.4.2 and 1.3.1 SR7 or above) based on the heuristic analysis engine.
- IBM Thread and Monitor Dump Analyzer for Java compares each javacore and provides process ID information for threads, time stamp of the first javacore, time stamp of the last javacore, number of garbage collections per minute, number of allocation failures per minute, time between the first javacore and the last javacore, number of hang suspects, and list of hang suspects.
- This technology also compares all monitor information in javacore and detects deadlock and resource contention or monitor bottlenecks, if there are any.
What is HeapAnalyzer?
- HeapAnalyzer allows the finding of a possible Java™ heap leak area through its heuristic search engine and analysis of the Java heap dump in Java applications.
- Java heap areas define objects, arrays, and classes. When the Garbage Collector allocates areas of storage in the heap, an object continues to be live while a reference to it exists somewhere in the active state of the JVM; therefore the object is reachable. When an object ceases to be referenced from the active state, it becomes garbage and can be reclaimed for reuse.
- When this reclamation occurs, the Garbage Collector must process a possible finalizer and also ensure that any internal JVM resources that are associated with the object are returned to the pool of such resources. Java heap dumps are snap shots of Java heaps at specific times.
How does it work?
HeapAnalyzer analyzes Java heap dumps by parsing the Java heap dump, creating directional graphs, transforming them into directional trees, and executing the heuristic search engine.
The following are examples of features:
- List of Java heap leak suspects
- Recommendation of the size of kCluster
- List of gaps among allocated objects/classes/arrays
- Java objects/classes/arrays search engine
- List of objects/classes/arrays by type name
- List of objects/classes/arrays by object name
- List of objects/classes/arrays by address
- List of objects/classes/arrays by size
- List of objects/classes/arrays by size of child
- List of objects/classes/arrays by number of child
- List of objects/classes/arrays by frequency
- List of available heap spaces by size
- Tree view of Java heap dump
- Loading/saving processed Java heap dumps.
http://www.wikiconsole.com/wiki/?p=990
相关推荐
heapdump分析工具------HeapAnalyzer: 2014年1月最新发布 用法: 在命令行执行 java -Xmx500m -jar ha453.jar
通过heapdump工具分析服务器堆分配问题
使用方法如下: ...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,查看内存增长的点
JavaCore和HeapDump分析工具
heapdump文件分析工具(最新2012-12-18) 用于分析OOM内存溢出的错误
heap Analyzer heapdump分析工具
websphere javacore与heapdump文件分析工具,jca是javacore分析工具,ha是heapdump分析工具,需要用jdk1.6打开
javacore文件及heapdump文件分析
heap dump: heap dump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况。HeapDump文件是指定时刻的Java堆栈的快照,是一种镜像文件。
heapdump分析工作heapanalyzer的使用及工具 java -Xmx1000m -jar ha443.jar
IBM HeapDump分析工具 java应用在内存泄露时会生成heapdump文件,分析heapdump文件,成为定位哪些对象占用了太多的堆栈空间的重要手段
ha25.zip-分析heapdump日志。对分析java内存溢出有帮助。
ibm websphere 服务器内存溢出或其他故障,生成heapdump,分析工具
AIX系统收集Heapdump及javacore
jmap -dump:format=b,file=heapdump.hprof Pid;生成一个关于此进程的堆栈使用情况;使用工具做出对比
1,IBM的HeapAnalyzer工具。在我们的应用程序发生内存泄露的时候,会生成heapdump文件 2,IBM的Thread and Monitor Dump Analyzer for Java工具 ...在生成heapdump文件的时候,一般会生成javacore文件。
软件介绍: IBM websphere 服务器出现内存溢出或其他故障时,会生成heapdump文件,本工具用于分析heapdump,查找错误原因。运行IBN WEBSPHERE HEAPDUMP需要安装JDK1.8框架。
IBM heapdump分析工具 能够分析IBM dump 文件