Java学习:分析WebLogic应用会话内存使用教程

3星 · 超过75%的资源 需积分: 3 3 下载量 148 浏览量 更新于2024-07-22 收藏 577KB PPTX 举报
本篇Java学习文档主要介绍了如何通过分析Heap Dump(.hprof格式)来确定应用程序中HttpSession对象的内存占用情况,适用于Oracle Weblogic Server 11g环境下的Java EE服务器和JDK 1.5版本。文档针对 Portal 应用程序监控与故障排除提供了一套详细的步骤。 首先,我们从生成Heap Dump开始。在Weblogic Server 11g环境中,登录到服务器并切换到应用程序账户,通常使用`$pbrunsu –itrc`命令。接着,获取应用程序的进程ID(PID),可以使用`$ps -ef | grep java`来查找。 为了确保能生成完整的内存转储,需要确保核心转储没有大小限制,避免因“文件大小限制”错误导致的堆转储失败。可以通过设置`vulimit-c unlimited`来解除这个限制。然后,确认有足够的磁盘空间来存放堆转储文件,通常大小应至少等于或大于最大内存分配。 对于JDK 1.6及以上版本,使用`/opt/bea/wls1032/jdk160_06/bin/jmap-dump`命令直接生成堆转储文件,指定格式为`format=b`,并将文件保存为`heap.bin`,参数中的`<pid>`替换为实际的进程ID。对于JDK 1.5,需在Weblogic JVM启动选项中添加`-XX:+HeapDumpOnCtrlBreak`和`-XX:+HeapDumpOnOutOfMemoryError`,以便在遇到控制台中断或内存溢出时自动生成堆转储。 创建堆转储文件后,下一步是使用Memory Analyzer 1.2(一个用于分析内存使用情况的工具)对heap.bin文件进行分析。这个工具能够帮助识别内存泄漏、过度分配和不活跃的对象等问题,从而帮助我们定位和优化HttpSession对象可能导致的内存占用问题。 此外,文档还可能包含关于如何解读Memory Analyzer的报告,例如理解各部分内存使用详情、识别内存泄漏的典型迹象、以及如何根据分析结果调整代码或配置以减少内存消耗。整体而言,这份文档是Java开发者在Weblogic环境下进行性能调优和问题排查的重要参考资料。