在我们服务器的一个实例中,heapdump、javacore、Snap 文件正在被创建。如何停止创建这些文件。请在此方面帮助我。因为堆文件会使我们的应用程序变慢,并且必须删除它并回收实例。
问问题
18836 次
3 回答
10
您的应用程序很慢可能是由于一些内存问题。禁用这些转储虽然很容易(只需添加-Xdump:none
JVM 参数),但不会解决问题的根本原因。
您应该打开其中一个 javacore 文件并检查这一行,这将告诉您为什么会触发转储:
1TISIGINFO Dump Event
你很可能会在那里看到这个原因:
Detail "java/lang/OutOfMemoryError" "Java heap space" received
如果是这种情况,则使用以下两者之一打开一个堆转储:
- 安装了 DTFJ 插件的Eclipse MAT ( http://www.eclipse.org/mat ) ( http://www.ibm.com/developerworks/java/jdk/tools/dtfj.html )
- 与 Support Assistant 捆绑在一起的内存分析器,了解 JVM 转储的原因。
分析堆转储并非易事,但在大多数情况下,您可以简单地请求“Leak Suspects”报告并发现泄漏。
如果您熟悉在该 JVM 中运行的代码或可以接触到开发人员,您还可以处理核心转储(如果它没有被截断,请检查:http ://www-01.ibm.com/support /docview.wss?uid=swg21584396)并使用内存分析器打开生成的 zip 文件。这应该让您对真正发生的事情有更多的了解。
禁用转储只会隐藏问题!
于 2013-10-04T05:18:48.973 回答
1
可能出于以下几个原因创建堆转储:
- 启用了自动堆转储生成(默认情况下禁用)。请参阅启用自动堆转储生成以了解如何禁用它
- 您经常遇到内存不足错误,这会导致收集堆转储等诊断信息。在这种情况下,您应该分析什么消耗内存或只是增加 JVM 堆大小 - Java 虚拟机设置
- 转储生成是手动触发的,情况可能并非如此
于 2013-10-03T08:53:15.350 回答
-1
单击管理控制台导航树中的服务器 > 应用程序服务器。
单击 server_name > 性能和诊断顾问配置。
单击运行时选项卡
选中启用自动堆转储收集复选框。
点击确定
于 2013-10-03T09:08:11.280 回答