2016-09-20 3 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은 직접 메모리의 JVM 힙에서 HDFS 색인 파일을 캐싱하고 있습니다. 그렇게하는 동안 메모리가 부족합니다. solrconfig.xml에서 solr.hdfs.blockcache.direct.memory.allocation=false

을 설정하여 직접 메모리 캐싱을 비활성화 할 수 있습니다. 이렇게하면 SOLR이 힙에 HDFS 인덱스 파일 부분을 캐시하게되므로 JVM의 크기를 확인하는 것이 중요합니다.

0

변수에 solr.in.sh 파일을 -XX:MaxDirectMemorySize=20g 추가하십시오. (SOLR 참조 가이드의 예로서 20g)

GC_TUNE 모습해야

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