IBM 的 Java 诊断,第 1 部分: 介绍面向 Java 的 IBM 转储分析器(IBM Dump Analyzer)
2010-04-01 00:00:00 来源:WEB开发网其中,dumpName 是要分析的完全合格的转储名称,options 是可以用于配置 Dump Analyzer 的运行时参数。运行 -help 选项将打印所有可用参数的列表。
图 3 中的快照显示了运行在命令行的 Dump Analyzer 的一些输出:
图 3. Dump Analyzer 命令行输出示例
查看原图(大图)
未来计划
编写本文时,已经可以使用 Dump Analyzer 的初始版。我们的团队计划继续定期进行修改和更新。尤其是,我们将侧重两个区域:
DTFJ:Dump Analyzer 的基础架构
Dump Analyzer 使用 DTFJ 询问格式化的系统转储。DTFJ 是一个 API,它支持构建 Java 诊断工具,这些工具可以检查从 VM 中获取的系统转储。检查系统转储之前,jextract 必须首先对其进行处理 以添加特定于运行时的信息。有必要使用相同版本的 Java 平台针对系统转储(命令行上的 jextract core.dmp)运行 jextract,并且在生成该系统转储的相同机器上运行。执行该操作之后,便可以在任何系统上检查所得到的文件(V1.4 的 Java 平台为 .sdff,V5.0 和更高版本的 Java 平台为 .dmp.zip)。
使用 DTFJ 进行分析的第一阶段是使用适当的图像工厂构建 DTFJ 图像。该工厂特定于给定的 VM 级别并且理解特定平台的转储格式。该图像表示整个操作系统图像;对于生成系统转储的机器,它可以提供方法来访问有关该机器的基础架构的信息, 但是它的主要功能是 能够检查图像内包含的地址空间。使用 DTFJ API,可以从图像导航到运行时参数、 Java 线程、本机环境以及堆对象的详细信息。界面允许工具 分析问题并生成报告信息。
我们将不断改进该工具本身的用户界面、添加面板以控制转储 以及运行转储的分析程序、改进输出格式、可能添加交互模式以及更多内容。
我们将增加分析程序和脚本的数量以包含更加广泛的问题。
构建新的分析程序,这一领域非常吸引人。借助此项 DTFJ 转储分析技术,您现在便拥有一个非常简单的机制,可以检查低级 VM 条目(如线程和监视器)以便诊断内存不足错误、崩溃、死锁等问题;此外,还可以检查 VM 中出现的任何数据结构的内容。特别是,您可以检查各种数据结构的内容,它们构成了运行在 VM 内的应用程序或中间件的实现。我们打算开始构建一个分析程序集合,它将利用这些信息帮助诊断 WebSphere Application Server 以及可能的其他堆栈产品中的各种问题。
我们的目标是使该工具尽可能有用,因此非常欢迎您提供有关该工具本身以及您希望添加的新分析程序的反馈。可以通过 ISA 或本文提供反馈。
结束语
本系列的下篇文章将介绍 Extensible Verbose Toolkit。该工具套件通过分析详细的垃圾收集日志 帮助您调查基于内存的 Java 性能问题。您可以使用该工具查看内存使用模式、确定是否存在内存泄露或调整垃圾收集配置以提高性能。
在本系列的第四篇文章中您将再次接触 Dump Analyzer。在该文章中,您将进一步了解该工具的可扩展性以及如何为其构建自己的分析模块。
更多精彩
赞助商链接