我在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。
如何解决此错误?
答案 0 :(得分:0)
SOLR将HDFS索引文件缓存在直接内存中的JVM堆上。这样做时内存不足。您可以通过设置solr.hdfs.blockcache.direct.memory.allocation=false
在solrconfig.xml中。这将导致SOLR在堆中缓存HDFS索引文件部分,因此检查JVM的大小非常重要。
答案 1 :(得分:0)
将-XX:MaxDirectMemorySize=20g
个solr.in.sh
文件添加到变量GC_TUNE
。 (Solr Ref指南中的例子为20g)
GC_TUNE
应如下所示:
GC_TUNE="-XX:NewRatio=3 \
...
-XX:+ParallelRefProcEnabled \
-XX:MaxDirectMemorySize=20g"