随着时间的推移,Solr可能变得缓慢

时间:2017-10-03 06:22:45

标签: solr cloud

我们正在使用Solr Cloud 6.5.0并设置3台服务器 服务器有62 GB RAM,30 GB数据 这个设置运行良好一段时间,但在3或4周后它变得非常慢 我们重新启动服务器它再次正常工作,一段时间后它再次变慢 我检查服务器上的IO和负载因素,一切都很好 此外,当我们在主从设置中使用具有相同数据的相同机器时,根本没有问题 以下是配置统计信息:

solr/nspec 6.5.1  
lucene/nspec 6.5.1  

Oracle Corporation Java HotSpot(TM) 64/nBit Server VM 1.8.0_20/nea 25.20/nb05  
Processors 12  


Duser.timezone=UTC 
DzkClientTimeout=15000  
XX:+CMSParallelRemarkEnabled  
XX:+CMSScavengeBeforeRemark  
XX:+ParallelRefProcEnabled  
XX:+PrintGCApplicationStoppedTime  
XX:+PrintGCDateStamps  
XX:+PrintGCDetails  
XX:+PrintGCTimeStamps  
XX:+PrintHeapAtGC  
XX:+PrintTenuringDistribution  
XX:+UseCMSInitiatingOccupancyOnly  
XX:+UseConcMarkSweepGC  
XX:+UseGCLogFileRotation  
XX:+UseParNewGC  
XX:  
OmitStackTraceInFastThrow
XX:CMSInitiatingOccupancyFraction=50  
XX:CMSMaxAbortablePrecleanTime=6000  
XX:ConcGCThreads=4  
XX:GCLogFileSize=20M  
XX:MaxTenuringThreshold=8  
XX:NewRatio=3  
XX:NumberOfGCLogFiles=9  
XX:ParallelGCThrea  
ds=4  
XX:PretenureSizeThreshold=64m  
XX:SurvivorRatio=4  
XX:TargetSurvivorRatio=90  
Xms4096m  
Xmx4096m  
Xss256k  
verbose:gc 

ramBufferSizeMB=200  
maxBufferedDocs=10000  
maxMergeAtOnce=10  
segmentsPerTier=10  
autoCommit  
maxDocs=100  
maxTime=8000  

autoSoftCommit  
maxDocs=25  
maxTime=5000  


maxBooleanClauses=024  
slowQueryThresholdMillis=500  
filterCache class="solr.FastLRUCache size="4096" initialSize="512" autowarmCount="1024"  
queryResultCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="256"  
enableLazyFieldLoading=true  
queryResultWindowSize=100  
queryResultMaxDocsCached=200  

1 个答案:

答案 0 :(得分:1)

您的问题可能是filterCache

  • 它相当大:如果你有20M文件,每个条目最多可达2.5MB,总大小为4096 * 2.5MB = 10GB(你的堆最大大小为4GB)。
  • 您的autowarmCount非常高,maxDocsautoCommit的{​​{1}}非常低:每次添加100个文档时,最多会执行1000次搜索

autoSoftCommit设置为低(100左右)并对filterCache(10左右)执行相同操作。还要考虑您的autowarmCount - 设置是否可以降低攻击性。