我在数据库中看到极慢的Solr更新。该数据库只有900个文件。我们使用自动提交和以下设置,偶尔自动提交需要很长时间阻止更新:
<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>1000</maxTime>
</autoCommit>
世界上有900个文件可以发生74秒。
想法?
以下是日志摘要:
2010年10月18日上午11:52:46 org.apache.solr.core.SolrCore执行 信息:[] webapp = / solr path = / update params = {} status = 0 QTime = 59569 2010年10月18日上午11:52:46 org.apache.solr.update.SolrIndexWriter getDirectory
2010年10月18日上午11:53:21 org.apache.solr.core.SolrCore执行 信息:[] webapp = / solr path = / update params = {} status = 0 QTime = 33586 2010年10月18日上午11:53:21 org.apache.solr.update.processor.LogUpdateProcessor完成
2010年10月18日上午11:54:40 org.apache.solr.core.SolrCore执行 信息:[] webapp = / solr path = / update params = {} status = 0 QTime = 76098 2010年10月18日上午11:54:41 org.apache.solr.update.DirectUpdateHandler2 commit
提交日志:
2010年10月18日上午11:54:00 org.apache.solr.update.DirectUpdateHandler2 commit
INFO:start commit(optimize = false,waitFlush = true,waitSearcher = true)
2010年10月18日上午11:54:00 org.apache.solr.search.SolrIndexSearcher
INFO:打开Searcher @ 29b003 main
2010年10月18日上午11:54:00 org.apache.solr.update.DirectUpdateHandler2 commit
INFO:end_commit_flush
2010年10月18日上午11:54:00 org.apache.solr.search.SolrIndexSearcher warm
信息:来自Searcher @ 718c93 main的搜索者@ 29b003主搜索 filterCache {查找= 0,命中= 0,hitratio = 0.00,插入= 512,驱逐= 0,大小= 257,warmupTime = 19294,cumulative_lookups = 3330661,cumulative_hits = 12 5437,cumulative_hitratio = 0.03,cumulative_inserts = 3207537,cumulative_evictions = 3184094}2010年10月18日上午11:54:20 org.apache.solr.search.SolrIndexSearcher warm
INFO:Searcher @ 29b003 main的自动装配结果 filterCache {查找= 0,命中= 0,hitratio = 0.00,插入= 256,驱逐= 0,大小= 256,warmupTime = 19739,cumulative_lookups = 3330661,cumulative_hits = 12 5437,cumulative_hitratio = 0.03,cumulative_inserts = 3207537,cumulative_evictions = 3184094}
2010年10月18日上午11:54:20 org.apache.solr.search.SolrIndexSearcher warm
信息:来自Searcher @ 718c93 main的搜索者@ 29b003主搜索 queryResultCache {查找= 0,命中= 0,hitratio = 0.00,插入= 256,驱逐= 0,大小= 256,warmupTime = 18604,cumulative_lookups = 3084,cumulative_hits = 996,cumulative_hitratio = 0.32,cumulative_inserts = 2313,cumulative_evictions = 0}2010年10月18日上午11:54:40 org.apache.solr.search.SolrIndexSearcher warm
INFO:Searcher @ 29b003 main的自动装配结果 queryResultCache {查找= 0,命中= 0,hitratio = 0.00,插入= 256,驱逐= 0,大小= 256,warmupTime = 19925,cumulative_lookups = 3084,cumulative_hits = 996,cumulative_hitratio = 0.32,cumulative_inserts = 2313,cumulative_evictions = 0}
2010年10月18日上午11:54:40 org.apache.solr.search.SolrIndexSearcher warm
信息:来自Searcher @ 718c93 main的搜索者@ 29b003主搜索 documentCache {查找= 0,命中= 0,hitratio = 0.00,插入= 0,驱逐= 0,大小= 0,warmupTime = 0,cumulative_lookups = 41846,cumulative_hits = 33712,cumu lative_hitratio = 0.80,cumulative_inserts = 8134,cumulative_evictions = 0}2010年10月18日上午11:54:40 org.apache.solr.search.SolrIndexSearcher warm
INFO:Searcher @ 29b003 main的自动装配结果 documentCache {查找= 0,命中= 0,hitratio = 0.00,插入= 0,驱逐= 0,大小= 0,warmupTime = 0,cumulative_lookups = 41846,cumulative_hits = 33712,cumu lative_hitratio = 0.80,cumulative_inserts = 8134,cumulative_evictions = 0}
2010年10月18日上午11:54:40 org.apache.solr.core.SolrCore registerSearcher
INFO:[]注册新搜索者Searcher @ 29b003 main
2010年10月18日上午11:54:40 org.apache.solr.search.SolrIndexSearcher close
答案 0 :(得分:7)
使用<maxTime>1000</maxTime>
,您将在每秒钟进行提交。每次Solr执行提交时,都会发生以下几种情况:索引搜索器已关闭并重新打开,缓存使用旧缓存加热,一些查询可能会自动启动(查看solrconfig中的'newSearcher'设置) 。在某些时候,您可能会有重叠提交。如果发生这种情况,Solr通常会很慢。
因此,问问自己,你是否真的需要在每一秒都有提交。如果是的话,最好从'newSearcher'中删除所有查询,因为提交它经常会使它们变得无用。