7

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

4

3 回答 3

10

您的应用程序很慢可能是由于一些内存问题。禁用这些转储虽然很容易(只需添加-Xdump:noneJVM 参数),但不会解决问题的根本原因。

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

1TISIGINFO     Dump Event

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

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

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

分析堆转储并非易事,但在大多数情况下,您可以简单地请求“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 回答