В нашей установке 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 ГБ, и следующие функции:
- Номер документов: 102015908
- Максимальный док: 105114766
- Использование динамической памяти: -1
- Удалено документов: 3098858
- Версия: 5563749
- Внедрение: 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 ГБ оперативной памяти, 4 ГБ из которых выделены для Java, ниже некоторых аргументов JVM:
-XX:+CMSParallelRemarkEnabled-XX:+CMSScavengeBeforeRemark-XX:+ParallelRefProcEnabled-XX:+PrintGCApplicationStoppedTime-XX:+PrintGCDateStamps-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintHeapAtGC-XX:+PrintTenuringDistribution-XX:+UseupCMSOnlyInitiating -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
Основываясь на этом количестве данных, какова правильная конфигурация кучи?