2016-09-20 25 views
0

我得到SolrCore初始化過程中此異常的消息:SolrCore初始化失敗 - 最大直接內存可能太低

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: 最大直接記憶可能太低。或者增加它(通過將 -XX:MaxDirectMemorySize = g -XX:+ UseLargePages添加到容器啓動參數中),或者在solrconfig.xml中使用 solr.hdfs.blockcache.direct.memory.allocation = false禁用直接分配。 如果要將塊緩存放在堆上,那麼Java堆大小 可能不夠大。失敗分配〜134.217728 MB。

我該如何解決這個錯誤?

回答

0

SOLR將HDFS索引文件從JVM堆中緩存到直接內存中。這樣做時內存不足。您可以通過在solrconfig.xml中設置solr.hdfs.blockcache.direct.memory.allocation=false

來禁用直接內存緩存。這將導致SOLR在堆中緩存HDFS索引文件部分,所以重要的是檢查JVM的大小。

0

-XX:MaxDirectMemorySize=20g將您的solr.in.sh文件添加到變量GC_TUNE。 (20克如Solr的參考導的例子)

GC_TUNE應該看起來像:

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