簡體   English   中英

Solr-Sitecore的Java堆空間調整

[英]Solr - Java heap space tuning for Sitecore

在我們的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_indexsitecore_analytics_index ,其大小為32.67 GB,並且具有以下功能:

  • 數量文檔:102015908
  • 最大文檔數:105114766
  • 堆內存使用情況:-1
  • 刪除的文檔:3098858
  • 版本:5563749
  • 的Impl:org.apache.solr.core.NRTCachingDirectoryFactory
  • org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(lockFactory = org.apache.lucene.store.NativeFSLockFactory @ 2e51764c; maxCacheMB = 48.0 maxMergeSizeMB = 4.0)

服務器具有6 GB的RAM,其中4 GB專用於Java,低於JVM的一些參數:

-XX:+ CMSParallelRemarkEnabled-XX:+ CMSScavengeBeforeRemark-XX:+ ParallelRefProcEnabled-XX:+ PrintGCApplicationStoppedTime-XX:+ PrintGCDateStamps-XX:+ PrintGCDetails-XX:+ PrintGCTimeStamps-XX:+ PrintHeapAtGC-XX:+ PrintTenuringDistributionInuption-UP -XX:+ UseConcMarkSweepGC-XX:+ UseParNewGC-XX:CMSInitiatingOccupancyFraction = 50-XX:CMSMaxAbortablePrecleanTime = 6000-XX:ConcGCThreads = 4-XX:MaxTenuringThreshold = 8-XX:NewRatio = 3-XX:ParallelGCThreads = 4-XX:PretenureSizeThreshold = 64m-XX:SurvivorRatio = 4-XX:TargetSurvivorRatio = 90-Xms4G-Xmx4G-Xss256k-verbose:gc

基於此數據量,堆的正確配置是什么?

為JVM分配的正確內存量應在服務器專用的8-16 GB內存中的6至12 GB之間。

您已經擁有一個龐大的分析索引,並且隨着時間的推移它會增長得更多,因此,由於大量的索引寫入和提交操作,您將繼續體驗高內存利用率。 我建議您考慮對您的大索引進行分片或使用Sitecore 8.2版的實驗支持下的SolrCloud,在此處了解更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM