IBM Java线程和监视器转储分析器

IBM Java线程和监视器转储分析器允许您通过其启发式引擎和Javacore分析来查找死锁,可能挂起的线程和资源争用。

下载:https://public.dhe.ibm.com/software/websphere/appserv/support/tools/jca/jca467.jar

介绍

在某些平台上,在某些情况下,Javacore被称为``Javadump''。创建Javacore的代码是JVM的一部分。您可以通过使用环境变量和运行时开关来控制它。Javacore包含与在执行过程中某个时刻捕获的JVM和Java应用程序有关的诊断信息。例如,该信息可以是有关操作系统,应用程序环境,线程,本机堆栈,锁和内存的信息。确切的内容取决于您所运行的平台。默认情况下,当JVM意外终止时,将出现Javacore。也可以通过将特定信号发送到JVM来触发Javacore。尽管Sun Solaris JVM中存在Javacore或Javadump,但Javacore的许多内容都是IBM的增值产品。也就是说,它仅存在于IBM JVM中。

按原样提供IBM Java线程和监视器转储分析器。

 

Javacore文件的位置

操作系统

Javacore文件名

格式含义

Windows和Linux

javacore.YYYYMMDD.HHMMSS.PID.txt

YYYY =年,MM =月,DD =天,SS =秒,PID =进程ID

 

艾克斯    

javacorePID.TIME.txt

PID = processID,TIME =自1/1/1970起的秒数

 

 

 

先决条件

  • Java 2 Runtime Environment 6或更高版本

 

特征

  • Javacore总结
  • 线程详细视图
  • 监视详细信息视图
  • 吊死嫌疑人名单
  • 线程比较视图
  • 线程比较摘要
  • 监视器锁定比较视图
  • IBM JVM的垃圾收集器统计信息
  • 选项视图
  • 键盘操作
  • 外观配置支持
  • 关于IBM Sov JVM的kCluster配置的建议。

 

 

 

 

如何运行IBM Thread and Monitor Dump Analyzer for Java

您需要使用Java 2 Platform Standard Edition版本6或更高版本的Java Runtime Environment(JRE)来运行IBM Thread和Monitor Dump Analyzer for Java。

用法<Java路径> java Xmx[heapsize] jarjca <Java版线程和监视器转储分析器> .jar [由路径定界符分隔的javacore文件] [分析输出HTML文件]


Windows系统上的路径定界符为分号;
Unix系统上的路径分隔符是冒号:

例如,

C:\ java \ bin \ java -Xmx200m -jar jca13.jar

=>启动IBM Thread and Monitor Dump Analyzer for Java版本1.3,并从菜单中打开javacore文件。

 

/ usr / java / bin / java Xmx200m jar /usr/jca/jca13.jar /usr/javacore.20060228.171037.2084.txt;/usr/javacore.20060228.171048.2084.txt

=>使用/usr/javacore.20060228.171037.2084.txt和/usr/javacore.20060228.171048.2084.txt启动Java版本1.3的IBM Thread and Monitor Dump Analyzer

 

java Xmx500m jar jca13.jar /usr/javacore.20060228.171037.2084.txt;/usr/javacore.20060228.171048.2084.txt output.html

=>使用/usr/javacore.20060228.171037.2084.txt和/usr/javacore.20060228.171048.2084.txt启动Java的IBM Thread and Monitor Dump Analyzer,并在不调用图形用户界面的情况下在output.html中生成分析输出

如果在处理Javacore文件时出现java.lang.OutOfMemoryError,请尝试增加最大堆大小(-Xmx)值以为JVM提供更多内存。

由于性能问题,最大堆大小不应大于此工具的可用物理内存大小。

 

1.启动IBM Thread and Monitor Dump Analyzer for Java

 

 

以下屏幕是初始屏幕的快照。

 

 

 

2.如果在启动过程中未在命令行中指定Javacore文件,请选择File-> Open Thread Dumps打开Javacore文件。

  

3.您可以选择多个Javacore文件

 

 

 

 

4.线程转储列表表中列出了已加载的Javacore文件。

 

 

  

线程转储列表提供以下信息:

  • 名称:Javacore的文件名
  • 可运行/总线程数:可运行和总线程数
  • 可用/已分配堆:可用和已分配的Java堆量
  • AF / GC计数器:分配失败和垃圾收集器计数器
  • 监视器:锁定的监视器数。如果Monitor中有任何死锁,则会显示死锁

 

 

5.单击Javacore以显示Javacore的摘要。

 

显示以下有关IBM Javacore的信息:

 

  • 文档名称
  • 线程转储的原因
  • 日期
  • 进程ID
  • Java版本
  • Java堆信息
    • 最大Java堆大小
    • 初始Java堆大小
    • 垃圾收集柜台
    • 分配失败计数器
    • 免费Java堆大小
    • 分配的Java堆大小
  • 当前线程名称
  • Java堆中已加载类的数量
  • 推荐的kCluster大小(仅适用于IBM SDK 1.4.2和1.3.1 SR7或更高版本)
  • Java命令行

 

非IBM Javacore(或线程转储)提供的信息有限。

 

 

 

 

6.单击鼠标右键以弹出菜单。或单击分析菜单以显示子菜单。

 

 

 

7.以下是Javacore的“线程详细信息视图”:

 

线程按线程名称排序。线程详细信息视图提供以下信息:

 

  • 线程名称:线程名称
  • 线程状态:线程的状态,例如,可运行,正在等待或已挂起
  • 方法名称:最近调用的方法或预定义的状态或堆栈跟踪模式,例如IDLE,LISTEN和KEEP-ALIVE
  • Java堆栈跟踪:当选择一个线程的Java堆栈跟踪显示。
  • 本机堆栈跟踪:本机堆栈跟踪显示在Java堆栈跟踪下方(如果可用)

 

 

注意:

  • 空闲线程是准备接收工作但没有建立连接的线程。
  • KEEP-ALIVE线程是一个空闲线程,可以随时接收工作并建立了连接。
  • LISTEN线程在端口上侦听

 

 

8.如果线程拥有监视器,则线程名称会用特殊图标标记,并显示正在等待监视器锁定的线程。

在以下示例中,线程“ Plato priority9”具有监视器所有权图标。在等待线程列表中,显示Aristotle和Socrates线程。

 

 

 

如果线程正在等待监视器锁定,则线程名称会用特殊图标标记,并显示拥有监视器锁定的线程。

在下面的示例中,线程Aristotle priority5在名称列中等待监视器锁定图标。

在“阻止者”列表中,显示拥有监视器的柏拉图优先级9:

 

 

 

9.您可以通过单击表标题对任何列进行排序。以下是按线程状态排序的“线程详细信息视图”

 

 

 

 

10.以下是按方法分类的“线程详细信息视图”。

 

 

 

 

11.默认情况下,死锁线程显示为灰色,如下所示:

 

 

 

12.按住Ctrl键选择多个Javacore,然后单击鼠标右键,然后选择Compare Threads。

 或选择分析->比较线程以显示“比较线程”视图

 

 

 

13.以下是两个Javacore的Compre Threads视图。


摘要显示在右窗格中。线程名称和方法名称显示在表中的每个Javacore中。

 

  • 进程ID
  • First Dump:第一个Javacore的时间戳
  • Last Dump:最后一个Javacore的时间戳
  • 每分钟的垃圾收集数:每分钟的垃圾收集数
  • 每分钟的分配失败次数:每分钟的分配失败次数
  • 经过的时间:第一个Javacore和最后一个Javacore之间的时间
  • 吊死嫌疑人的数量
  • 吊死嫌疑人名单

 

 

 

红色背景指示线程中可能挂起。绿色边框表示可运行线程。蓝色边框表示正在等待监视器。黄色边框表示正在等待状态。

 

14.选择线程后,将显示线程摘要。

 

 

 

15.选择“监视器详细信息”以显示“监视器详细信息”视图

 

 

 

 

 

16.    监视器锁定信息以树格式显示

 

总大小是与特定监视器直接或间接相关的线程总数。

大小是与特定监视器直接相关的线程数。

 

 

单击其中一个线程。

 

 

有47个线程正在等待由Servlet Engine Transports锁定的监视器:3049

 

 

死锁线程带有图标显示,如下所示:

 

 

17.您可以单击任何线程以显示有关监视器和线程信息的详细信息

 

 

 

18.您也可以在比较监视器视图中比较监视器。选择比较显示器菜单

 

 

 

19.红线表示“比较监视器”视图中的特定线程可能挂起。

 

 

如果单击某个线程,则在中间窗格中显示等待线程拥有的锁的线程列表。如果单击中间窗格中的任何线程,则线程信息将显示在右窗格中。

 

20.选择View-> Option,为Java配置IBM Thread和Monitor Dump Analyzer。

 

 

 

21.您可以更改默认目录,颜色和其他选项。

 

 

22-1。在颜色中选择一个状态,然后单击更改按钮以更改颜色。

 

 

 

22-2。选择一种颜色,然后单击确定

 

 

 

23.在option的Advanced窗格中,您可以自定义堆栈跟踪模式识别引擎:

 

ID        列表:自定义堆栈跟踪模式的ID列表

ID        :堆栈跟踪模式的标识符。不允许有空格。

        堆栈名称:从线程详细信息视图中看到的堆栈跟踪模式名称

        堆栈跟踪:堆栈跟踪模式。语法:``at package.class.method''。不允许使用括号。

        描述:堆栈跟踪模式的描述

        如果发现任何匹配项,该工具将搜索堆栈跟踪模式并在线程详细信息视图中显示堆栈名称

        警告:如果已加载线程转储,请添加新的堆栈跟踪模式,请重新打开线程转储。

 

 

 

24.您可以通过选择清除控制台菜单在控制台中删除消息

 

 

 

 

25.选择“关闭线程转储”以卸载Javacore文件。

 

 

26.帮助菜单显示帮助屏幕。

 

 

 

27.选择“帮助”->“关于”以显示IBM Thread和Monitor Dump Analyzer for Java的版本信息

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值