WebSphere应用服务器内存泄漏探测与诊断工具选择最佳实践应用服务器内存泄漏探测与诊断工具选择最佳实践
本文内容包括:
引言
1. 内存泄漏探测和诊断步骤
2.WebSphere应用服务器中内存泄漏的探测工
具
3. Java 虚拟机概要分析和详细垃圾回收
4. TPV监视JVM的状况
5. 生成Heap dump文件
6. 内存泄漏的分析诊断工具-MDD4J
7. 小结
参考资料
本文介绍了如何在WebSphere应用服务器中实现应用程序内存泄漏的探测,并且针对IBM所提供的系列分析与诊断
工具,给出了具体的配置步骤和使用最佳实践。
引言引言
内存泄漏是比较常见的一种应用程序性能问题,一旦发生,则系统的可用内存和性能持续下降;最终将导致内存不足
(OutOfMemory),系统彻底宕掉,不能响应任何请求,其危害相当严重。同时,Java堆(Heap)中大量的对象以及对象间之复
杂关系,导致内存泄漏问题的探测和分析均比较困难,采用相应的辅助工具是很必要的。
WebSphere应用服务器提供了系列针对内存问题的探测和分析诊断工具,这些工具可以帮助用户进行内存问题的及时探测,
保证系统在发生OOM之前,用户可以在无须进行复杂分析的条件下,预知在其部署的应用中是否存在内存泄漏的问题。如果
确有内存泄漏现象发生,WebSphere还提供了相应的工具,可以帮助用户进行分析诊断,从而找到内存泄漏的真正原因。
1. 内存泄漏探测和诊断步骤内存泄漏探测和诊断步骤
实践中,我们可以采用以下的步骤来处理内存泄漏的问题:
(1) 首先,在WebSphere中我们启用实时探测内存泄漏工具, WebSphere性能诊断顾问会对内存泄漏提前发出警告信息。
(2) 启用WebSphere自带的Tivoli性能查看器监视系统的JVM使用状况,确定内存泄漏是否正在发生。
(3) 根据需要,生成详细内存回收日志,使用PMAT工具分析并确定泄漏的时间,周期等。
(4) 生成单个或者多个Heapdump文件,选用MDD4J进行分析诊断,找到内存泄漏的真正原因。
(5) 提交开发部门进行代码修复,然后重新部署到WebSphere应用服务器。
接下来的部分,我们针对每个环节的配置和工具使用进行阐述。
2..WebSphere应用服务器中内存泄漏的探测工具应用服务器中内存泄漏的探测工具
2.1 性能诊断顾问介绍
性能诊断顾问(Performance and Diagnostic Advisor),在WebSphere应用服务器6.0.2版本之前称为运行时性能顾问
(Runtime Performance Advisor)。该工具可以周期性的检查WebSphere的设置,并给出调整的推荐值。自WebSphere应用
服务器6.0.2版本开始,该工具实现了一种轻量级的内存探测机制,可以非常容易的帮助用户探测是否在系统中存在内存泄漏
问题,并提前通过日志和管理控制台进行通知。这样就给用户以足够的时间采取必要的措施防止系统宕掉,同时可以收集或生
成相关的文件以进行离线的分析,来查找泄漏的根本原因。
2.2配置
可以在WebSphere应用服务器的管理控制台中启用性能诊断顾问