WEB开发网
开发学院软件开发Java 使用 IBM 性能分析工具解决生产环境中的性能问题 阅读

使用 IBM 性能分析工具解决生产环境中的性能问题

 2010-04-12 00:00:00 来源:WEB开发网   
核心提示: 由于笔者之前并没有这方面的分析经验,觉得 heapdump 文件很大,使用 IBM 性能分析工具解决生产环境中的性能问题(4),就想当然拿它开刀了,首先是寻找工具,试图从这个可读性不强的结果中找到蛛丝马迹,可是许久没有进展,类似的工具有多种,笔者最后选择了 IBM 的 HeapAnalyzer(

由于笔者之前并没有这方面的分析经验,觉得 heapdump 文件很大,就想当然拿它开刀了。首先是寻找工具,类似的工具有多种,笔者最后选择了 IBM 的 HeapAnalyzer(http://www.alphaworks.ibm.com/tech/heapanalyzer)。通过对 heapdump 文件的解析,HeapAnalyzer 可以分析出哪些对象占用了太多的堆栈空间,从而发现导致内存泄露或者可能引起内存泄露的对象。它的使用很简单,可以从它的 readme 文档中找到,这里我们简单举个例子如下:

#/usr/java50/bin/java – Xmx2000m – jar ha36.jar heapdump.20090602.134015.430370.phd 

通常我们需要使用较大的 heapsize 来启动 HeapAnalyzer,因为通过 HeapAnalyzer 打开过大的 heapdump 文件时,也可能会因为 heapsize 不够而产生 OOM 的错误。开始的时候,笔者从服务器上将 heapdump 文件通过 ftp 下载下来,然后试图通过本机 window 环境进行分析。笔者使用的电脑是 2G 内存,启动 HeapAnalyzer 时指定的是 1536 M,但是几次都是到 90% 多的时候进度条就停止前进了。迫不得已同时也是为了能达到环境一致的效果,笔者将 HeapAnalyzer 上传到生产环境,直接在生产环境下打开 heapdump 文件。

使用 IBM 性能分析工具解决生产环境中的性能问题

查看原图(大图)

个人感觉 HeapAnalyzer 给出的分析结果可读性不强,而且不能准确定位问题,从分析结果看大致是因为加载的对象过多,但是是哪个模块导致的问题就跟踪不到了。笔者开始寻找 HeapAnalyzer 分析结果相关的资料,试图从这个可读性不强的结果中找到蛛丝马迹,可是许久没有进展,再一次陷入了困境。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 IBM 性能分析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接