如何停止创建 .mdmp 文件

15

我有一个托管在Tomcat上的Solr实例,最近开始创建minidump文件。任何日志中都没有错误,而且Solr继续正常运行。

这些文件大约有14GB大小,并且正在填满硬盘。是否有一种方法可以在我们调查此问题时关闭这个功能?


3
我想出了如何解决这个问题在这里查看我的问题和答案 - Lucas
4个回答

16

通常情况下,当JVM崩溃时,由-XX:ErrorFile控制的hs_err错误日志文件的内容通常足以指出问题所在。

为了防止Oracle JVM Hotspot生成Windows minidump (mdmp文件),在命令行上使用的JVM选项是:-XX:-CreateMinidumpOnCrash

自2011年以来就存在,但很难找到:如何在Windows上使用Java Hotspot JVM禁用minidump (mdmp)文件生成


1
这篇文章涵盖了Linux和Windows JVM转储文件的相关信息。我还没有在我的Java 7版本上进行测试...。 从该网站获取 禁用文本转储文件:
如果您怀疑文本转储文件的创建存在问题,可以使用选项-XXnoJrDump关闭文本转储文件。
禁用二进制崩溃文件:
您可以使用选项-XXdumpSize:none关闭二进制崩溃文件。

欢迎来到SO!请避免仅提供链接的答案。相反,尝试根据您在该网站上看到的内容提供答案。 - vefthym
2
请注意,这些选项适用于JRockit JVM而不是标准的Hotspot版本。 - darrenmc
FYI:这里是JRockit JVM和HotSpot JVM选项的映射表:https://docs.oracle.com/javacomponents/jrockit-hotspot/migration-guide/cloptions.htm -- 不幸的是,一些转储选项只出现在JRockit JVM列中。 - StackzOfZtuff

0

我从未找到在Windows上禁用Java minidumps的方法。奇怪的是,服务器上的所有内容都正常工作,除了硬盘填满了minidumps。

最终,我们将相同版本的Solr / Java / Tomcat重新安装到Linux机器上,并且不再遇到问题。我想重新安装所有内容到Windows机器上也会解决问题。这是一个奇怪的问题。


Inunno在这里提供了一个答案(https://dev59.com/zWEh5IYBdhLWcg3wIgbN#22771547),对我来说在Windows 7上,使用Java 1.7.0_13是有效的。 - azurefrog

0
你正在使用Java 7吗?如果是这样,请回退到Java 5或6。Lucene/Solr和Java 7不兼容,这可能会导致生成dump文件。否则,如果一切正常,请禁用文件转储。

我一直没有找到禁用转储的方法。我该怎么做? - Evan
可能会有所帮助,如果您告诉我们使用的操作系统是什么?同时建议您尝试谷歌搜索一下相关内容。有很多关于禁用小型转储文件的文章。 - Okke Klein
这是Windows Server 2008,但禁用转储难道不是Java选项吗?祝你好运找到那篇文章,我已经找了好几天了。 - Evan
检查我的电脑属性,然后转到高级选项卡。在启动和恢复下,有一个禁用小型转储的选项。你从未回答过是否使用Java 7。那么你也会有一个原因。 - Okke Klein
这会禁用操作系统创建的迷你转储,但不会禁用JAVA创建的转储。我仍然没有找到解决方法。 - Evan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接