从 Solr 5.0.0 迁移到 Solr 5.1.0 时的堆大小问题

Heap size issue on migrating from Solr 5.0.0 to Solr 5.1.0

我有一个生产中的 Solr 5.0.0,具有这样的自定义堆大小

SOLR_JAVA_MEM="-Xms2g -Xmx2g"

当我尝试迁移到具有相同配置的 Solr 5.1.0 并启动服务器时,它返回了 OutOfMemoryError。查看 Solr API,我看到堆大小设置为 512m。我的自定义堆配置在 Solr 5.1.0 中不起作用,服务器以默认堆大小值启动。

这是一个仅在 Solr 5.1 中出现的错误。解决了 Solr 5.2 中的此错误的问题。

https://issues.apache.org/jira/browse/SOLR-7454

问题是 Solr 5.1 不使用 SOLR_JAVA_MEM 来设置堆大小。它使用 SOLR_HEAP 将最小和最大堆大小设置为相同的值,如下所示:

SOLR_HEAP="2g"

这样 solr 将以 -Xms=2g-Xmx=2g

开头

在 Solr 5.2 中,此错误已修复,两个 SOLR_JAVA_MEMSOLR_HEAP 工作正常。

就我而言,使用相同的 SOLR 版本 (v.5.0),我在 bin\solr.in.sh 文件中进行了更改。

还有其他包含“-Xms512m -Xmx512m”的文件,请注意这些文件不会更新 JVM 内存,例如:

  1. bin\solr
  2. bin\solr.in.cmd
  3. bin\solr.cmd