【发布时间】:2015-07-28 23:43:43
【问题描述】:
我有一个 Solr 实例,它由最近开始创建小型转储文件的 Tomcat 托管。任何日志中都没有错误,Solr 继续顺利工作。
这些文件大约为 14GB,正在填满硬盘。有没有办法在我们调查此问题时将其关闭?
【问题讨论】:
-
我想出了如何解决这个问题see my question and answer here。
我有一个 Solr 实例,它由最近开始创建小型转储文件的 Tomcat 托管。任何日志中都没有错误,Solr 继续顺利工作。
这些文件大约为 14GB,正在填满硬盘。有没有办法在我们调查此问题时将其关闭?
【问题讨论】:
一般来说,当 JVM 崩溃时,hs_err 错误日志文件(由-XX:ErrorFile 控制)的内容通常足以指出问题所在。
为防止 Oracle JVM Hotspot 生成 Windows minidump(mdmp 文件),命令行中使用的 JVM 选项为:-XX:-CreateMinidumpOnCrash
它自 2011 年以来就存在,但很难找到:How to disable minidump (mdmp) files generation with Java Hotspot JVM on Windows
【讨论】:
这篇文章提供了有关 Linux 和 Windows JVM 转储文件的不错信息。还没有在我当前版本的 Java 7 上自己测试它....
禁用文本转储文件
如果您怀疑创建文本转储文件有问题,您可以使用以下选项关闭文本转储文件:-XXnoJrDump。
禁用二进制崩溃文件
您可以使用以下选项关闭二进制崩溃文件:-XXdumpSize:none。
【讨论】:
您使用的是 Java 7 吗?在这种情况下,请恢复到 Java 5 或 6。Lucene/Solr 和 Java 7 不能很好地结合在一起,这可能会创建转储文件。否则,如果一切正常,只需禁用文件转储。
【讨论】:
我从未找到在 Windows 上禁用 Java minidumps 的方法。奇怪的是服务器上的一切都正常工作,除了硬盘驱动器充满了小型转储。
我们最终将相同版本的 Solr/Java/Tomcat 重新安装到 linux 机器上,不再出现问题。我想将所有东西重新安装到 Windows 机器上也可以解决问题。这很奇怪。
【讨论】: