如何停止创建在JVM实例中创建的Heap文件,java核心文件。

时间:2013-10-03 06:37:35

标签: jvm websphere heap-dump

在我们的服务器实例之一,heapdump,javacore,Snap文件正在创建。 如何停止创建这些文件。请帮助我。因为堆文件使我们的应用程序变慢,必须删除它并回收实例。

3 个答案:

答案 0 :(得分:9)

您的应用程序可能因某些内存问题而变慢。禁用这些转储虽然简单(只需添加-Xdump:none JVM参数),但无法解决问题的根本原因。

您应该打开其中一个javacore文件并检查此行,它将告诉您为什么要触发转储:

1TISIGINFO     Dump Event

你很可能会在那里看到这个原因:

Detail "java/lang/OutOfMemoryError" "Java heap space" received

如果是这种情况,则打开以下两者之一的堆转储:

分析堆转储并非易事,但在大多数情况下,您可以简单地请求发现泄漏的“泄漏嫌疑人”报告。

如果您熟悉在该JVM中运行的代码或者可以访问开发人员,那么您也可以处理核心转储(前提是它没有被截断,请检查:http://www-01.ibm.com/support/docview.wss?uid=swg21584396)并打开结果带有Memory Analyzer的zip文件。这应该可以让你更深入地了解真实情况。

禁用转储只会隐藏问题!

答案 1 :(得分:1)

可能由于以下几个原因而创建堆转储:

  • 启用了自动堆转储生成(默认情况下禁用)。请参阅Enabling automated heap dump generation了解如何禁用它
  • 您经常出现内存不足错误,这会导致收集堆转储等诊断信息。在这种情况下,您应该分析消耗内存或仅增加JVM堆大小的内容 - Java virtual machine settings
  • 手动触发转储生成,可能不是这种情况

答案 2 :(得分:-1)

点击服务器>应用程序服务器位于管理控制台导航树中 单击server_name>性能和诊断顾问配置 单击运行时选项卡
选中“启用自动堆转储收集”复选框 单击“确定”