`
dfch84
  • 浏览: 57319 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Introduction to Heap Dump & Core Dump

    博客分类:
  • Java
阅读更多

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)

 

写道

 

只有IBM的JDK才会产生javacore,sun的JDK只产生线程转储

 

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 monitors on a JVM.
  • Some useful information about the system that the JVM runs under.

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分析工具

    要生成heapdump,可以使用JVM内置的命令行选项,例如`-XX:+HeapDumpOnOutOfMemoryError`来配置JVM,在出现OOM错误时自动创建heapdump,或者使用`jmap`工具(需要与JDK配套)手动触发dump: ```bash jmap -dump:...

    heapdump-tool工具

    【标题】:heapdump-tool工具 【正文】: 在IT领域,内存管理是优化系统性能的关键环节,尤其是在Java应用程序中。Heapdump-tool工具是专为Java开发者设计的,用于生成和分析堆转储(Heap Dump)文件的强大工具。...

    Heap Dump的IBM分析工具.zip

    "Heap Dump的IBM分析工具.zip" 提供了一个专门用于解析和分析heap dump的IBM工具,帮助我们更好地理解JVM内存的状态。 Heap dump文件是Java虚拟机(JVM)在特定时间点生成的一种文件,它包含了JVM堆内存中的所有...

    IBM WEBSPHERE heapdump分析工具 ha456

    2. 运行heapdump.bat脚本,这个脚本通常会调用Java命令行来运行ha456.jar,例如:`java -jar ha456.jar heapdump.hprof` 3. 工具会输出内存分配的概览,包括类、对象的数量、大小等信息。 4. 通过这些信息,可以识别...

    heapdump分析工具HeapAnalyzer

    heapdump分析工具------HeapAnalyzer: 2014年1月最新发布 用法: 在命令行执行 java -Xmx500m -jar ha453.jar

    AIX系统收集Heapdump及javacore

    在IT领域,尤其是在企业级应用服务器的运维与故障排查中,收集Heapdump和JavaCore是诊断Java应用程序内存泄漏、性能瓶颈以及异常行为的关键步骤。本文将深入解析在AIX系统环境下,如何通过设置特定环境变量来有效...

    JavaCore和HeapDump分析工具

    JavaCore和HeapDump是两种重要的Java应用程序诊断工具,它们用于理解和优化Java应用程序的性能和内存使用情况。在Java运行环境中,遇到性能问题或者内存泄漏时,开发者通常会借助这类工具来定位问题。 JavaCore,也...

    native_heapdump_viewer.py

    使用方法如下: ...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文件分析工具

    `javacore`和`heapdump`文件就是用来记录和诊断这类问题的重要工具。本篇文章将详细讲解如何使用`javacore`和`heapdump`分析工具,特别是针对Websphere环境的`ha`和`jca`工具,以及如何使用JDK1.6来打开和解析这些...

    javacore文件及heapdump文件分析

    javacore 文件及 heapdump 文件分析 javacore 文件和 heapdump 文件是 Java 应用程序在遇到致命问题时产生的两个文件,这两个文件可以帮助我们分析和解决 Java 应用程序中的问题。 javacore 文件是一个文本文件,...

    heapdump文件分析工具(最新2012-12-18)

    heapdump文件分析工具(最新2012-12-18) 用于分析OOM内存溢出的错误

    heapdump分析工作heapanalyzer的使用及工具

    heapdump分析工作heapanalyzer的使用及工具 java -Xmx1000m -jar ha443.jar

    heapdump.rar

    2. **分析heapdump**:使用调试器(如Visual Studio的调试器、Windbg、gdb等)加载heapdump文件,查看内存分配的详细信息。这可能包括查看所有活动的内存块,以及它们的分配历史。 3. **查找泄漏**:通过比较分配与...

    利用wsadmin生成javacore,heapdump文件

    在IT领域,尤其是在Java应用程序的性能调优过程中,生成javacore和heapdump文件是非常重要的步骤。这些文件能帮助我们诊断应用程序的内存泄漏、性能瓶颈等问题。本篇将详细讲解如何利用wsadmin工具来生成这两种文件...

    ha25.zip-分析heapdump日志

    "ha25.zip-分析heapdump日志"是一个专门针对Java内存溢出问题进行分析的压缩包文件,它包含了一些工具和文档,帮助开发者诊断和解决内存问题。 首先,heapdump是一个Java虚拟机(JVM)生成的文件,它记录了在特定...

    jmap -dump:format=b,file=heapdump.hprof Pid堆栈文件分析工具

    本文将详细讲解如何使用`jmap`中的`-dump:format=b,file=heapdump.hprof`选项来生成堆栈文件,并利用MAT(Memory Analyzer Tool)进行分析。 首先,`jmap`是Java HotSpot虚拟机的一个命令行工具,它可以提供关于JVM...

    heap Analyzer heapdump分析工具

    heap Analyzer heapdump分析工具

    IBM heapdump分析工具

    IBM堆转储(heapdump)分析工具是一种专门用于解析和诊断IBM Java虚拟机(JVM)内存状况的工具。在Java应用程序运行过程中,如果遇到内存溢出或性能问题,IBM JVM会产生heapdump文件,其中包含了应用程序运行时内存...

    IBM HeapDump分析工具最新版4.3.1

    IBM HeapDump分析工具 java应用在内存泄露时会生成heapdump文件,分析heapdump文件,成为定位哪些对象占用了太多的堆栈空间的重要手段

Global site tag (gtag.js) - Google Analytics