我使用IBM jdk 1.7(以支持TLS密码)来实现一个使用嵌入式tomcat部署的基于struts的应用程序。我们正在运行的内存泄漏(OOM),产生了近30 of的dumps.This已经成为一个轮流事件。我们尝试通过在wrapper.conf中包含“wrapper.java.additional.1="-XX:MaxPermSize=256m -Xss2048k”来增加堆内存。但这并没有多大帮助。
发布于 2016-03-02 18:12:11
尝试使用内存分析器,您可以按照这里的说明下载并安装它:https://www.ibm.com/developerworks/java/jdk/tools/memoryanalyzer/
它应该提供堆使用情况的概述。我建议从主控器树视图开始,看看哪些对象负责在堆上保持数据活动。您还可以运行各种报告,为您分析堆。
你应该有核心文件(.dmp)和堆转储(.phd),核心文件会很大,但访问速度可能会更快,并且还将包含对象和字符串中基本类型的所有值。phd文件只包含对象大小和它们之间的连接。如果从核心文件开始,可能更容易将您看到的内容与您的代码联系起来。
https://stackoverflow.com/questions/35481833
复制相似问题