java - WebSphere 7 - 如何确定哪些对象在运行时耗尽了堆内存?

标签 java websphere websphere-7

问题:我遇到间歇性内存不足问题,但 WebSphere 正在恢复。我正在尝试确定如何找出占用大部分内存的内容。我有应用程序动态,但它不适用于 Websphere。

唯一的方法是确定什么消耗了大部分内存以从内存不足崩溃中进行堆转储吗?

服务器:WebSphere 7.5

JAVA版本:IBM 1.6

最佳答案

IBM JVM 具有转储触发器,允许您非常灵活地触发转储。例如,您可以将 JVM 配置为在输入给定方法时进行转储:

-Xtrace:trigger=method{java/lang/String.substring,coredump}

您也可以指定计数,以便在输入方法 1000 次和 1001 次时生成转储:

-Xtrace:trigger=method{java/lang/String.getBytes,coredump,,1000,2}

获得转储后,使用带有 IBM 扩展 ( http://www.ibm.com/developerworks/java/jdk/tools/memoryanalyzer/ ) 的 Eclipse Memory Analyzer 是进行分析的一个不错的选择。 IBM 扩展知道如何解析 IBM 转储(如您所期望的),并且还可以了解哪些内存使用模式表明存在潜在问题。

关于java - WebSphere 7 - 如何确定哪些对象在运行时耗尽了堆内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38402409/

相关文章:

soap - 网络球 : log soap requests & responses

Java:如何询问用户是否想再玩一次

java - libgdx 多个对象实现 InputProcessor

e-commerce - 在 WebSphere Commerce 的结账过程/流程中调用了哪些命令?

java - 启用 Websphere 安全性后 Arquillian 测试停止工作

spring-security - WebSphere 上的 Spring Security PreAuthentication 过滤器示例?

java - 语句在 WAS 上给出 nullPointerException,但在 Tomcat 上运行良好

java - 刷新包含菜单项不起作用

java - 如何在 Eclipse 的“打开资源”对话框中隐藏 .class 文件?

java - 如何在websphere宕机之前执行java中的特定方法?