在我们的sitecore 8.2安装中,我们使用Solr 5.1.0作为索引系统。 最近我们遇到了一些问题:
[sitecore_analytics_index] org.apache.solr.common.SolrException; org.apache.solr.common.SolrException:打开新搜索器时出错 引起:org.apache.lucene.store.AlreadyClosedException:此IndexWriter已关闭 引起:java.lang.OutOfMemoryError:Java堆空间
选择堆阈值给solr的正确方法是什么?
目前,在不同的核心中,唯一超过几百兆的核心是sitecore_analytics_index,其大小为32.67 GB,具有以下特点:
服务器有6 GB的RAM,其中4 GB专用于Java,低于JVM的一些args:
-XX:+ CMSParallelRemarkEnabled-XX:+ CMSScavengeBeforeRemark-XX:+ ParallelRefProcEnabled-XX:+ PrintGCApplicationStoppedTime-XX:+ PrintGCDateStamps-XX:+ PrintGCDetails-XX:+ PrintGCTimeStamps-XX:+ PrintHeapAtGC-XX:+ PrintTenuringDistribution-XX :+ UseCMSInitiatingOccupancyOnly-XX:+ UseConcMarkSweepGC-XX:+ UseParNewGC-XX:CMSInitiatingOccupancyFraction = 50-XX:CMSMaxAbortablePrecleanTime = 6000-XX:ConcGCThreads = 4-XX:MaxTenuringThreshold = 8-XX:NewRatio = 3-XX:ParallelGCThreads = 4- XX:PretenureSizeThreshold =64米-XX:SurvivorRatio = 4-XX:TargetSurvivorRatio = 90 Xms4G-Xmx4G-Xss256k-冗长:GC
基于这个数据量,这是堆的正确配置吗?
答案 0 :(得分:0)
为JVM分配的正确内存量应在服务器专用的8-16 GB内存中的6到12 GB之间。
您已经有一个庞大的分析索引,并且随着时间的推移它会增长得更多,因此,由于大量的索引写和提交操作,您将继续体验到高内存利用率。我建议您考虑对您的大索引进行分片,或者使用Sitecore 8.2版的实验支持下的SolrCloud,了解更多here。