如何分析WebSphere Java堆转储文件以进行故障排除

应用程序故障排除总是令人兴奋和具有挑战性的。然而,如果你没有所需的工具,那么它将令人沮丧。

如果你正在使用WebSphere,那么在项目阶段,你大部分的时间都需要花在故障排除和调整应用程序性能上。

对于性能相关的问题,你将与开发人员合作,并被要求获取堆转储进行分析。

获取堆转储有多种方法。如果你想知道如何在WebSphere中获取,那么点击这个 guide will help you

一旦你有了堆转储,你需要进行分析,不幸的是,你不能在记事本中打开,所以你需要使用工具。但不用担心,下面的工具将帮助你读取堆转储文件进行分析。

它们都是免费的!

IBM HeapAnalyzer

IBM的HeapAnalyzer可以帮助你找到可能的Java堆泄漏区域,并可以 download from here

  • 一旦下载了jar文件,你可以像下面这样运行它们。
java -Xmx4g -jar ha456.jar
  • 它将打开分析器。要打开堆转储,转到文件>>选项并选择堆转储。根据文件大小,可能需要几秒钟的时间,然后给出总览视图。

怀疑任何泄漏的最快方式是:

  • 转到分析菜单>>分析视图

如果没有发现泄漏,它会显示类似于这样的信息。

所以继续尝试“分析”下的各种选项,以熟悉这个工具。

Eclipse Memory Analyzer (MAT)

MAT可以分析包含数亿个对象的堆转储文件,并且速度很快。它可以快速检查疑似泄漏并在一分钟内生成出色的图形报告。

MAT默认不支持WebSphere生成的堆转储文件,所以你需要使用插件。

你可以下载 MAT from hereplugins from here。插件的安装很简单。只需将插件jar文件复制到MAT插件文件夹中。

  • 一旦下载MAT,你可以通过执行以下命令来打开它
./MemoryAnalyzer
  • 要分析堆转储文件,转到文件>>打开堆转储并选择文件
  • 它将花费几秒钟时间并提示“入门向导”。

你可以选择任何你想要的内容,然后点击完成。啊,它找到了两个泄漏嫌疑对象。

MAT非常强大,可以分析一些指标。

例如:

  • 最大对象的顶级消费者
  • 最大顶级占有者类
  • 最大顶级占有者包
  • 线程概述
  • 堆转储概述

如果你使用其他J2EE应用服务器,那么你可以使用 VisualVM 来分析堆转储。

你可能还对 learning about Java memory management 感兴趣。

类似文章