SolrCore初始化失败 - 最大直接内存可能太低

时间:2016-09-20 07:28:23

标签: java hadoop solr solrcloud

我在SolrCore初始化期间收到此异常消息:

  

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:   最大直接内存可能太低。要么增加它(通过添加   -XX:MaxDirectMemorySize = g -XX:+ UseLargePages到容器启动args)或禁用直接分配使用   solrconfig.xml中的solr.hdfs.blockcache.direct.memory.allocation = false。   如果要将块缓存放在堆上,那么就是Java堆大小   可能不够大。分配失败〜134.217728 MB。

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

SOLR将HDFS索引文件缓存在直接内存中的JVM堆上。这样做时内存不足。您可以通过设置solr.hdfs.blockcache.direct.memory.allocation=false

来禁用直接内存缓存

在solrconfig.xml中。这将导致SOLR在堆中缓存HDFS索引文件部分,因此检查JVM的大小非常重要。

答案 1 :(得分:0)

-XX:MaxDirectMemorySize=20gsolr.in.sh文件添加到变量GC_TUNE。 (Solr Ref指南中的例子为20g)

GC_TUNE应如下所示:

        GC_TUNE="-XX:NewRatio=3 \
        ...
        -XX:+ParallelRefProcEnabled \
        -XX:MaxDirectMemorySize=20g"