Solr更新非常慢

时间:2010-10-20 14:38:51

标签: lucene solr

我在数据库中看到极慢的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

1 个答案:

答案 0 :(得分:7)

使用<maxTime>1000</maxTime>,您将在每秒钟进行提交。每次Solr执行提交时,都会发生以下几种情况:索引搜索器已关闭并重新打开,缓存使用旧缓存加热,一些查询可能会自动启动(查看solrconfig中的'newSearcher'设置) 。在某些时候,您可能会有重叠提交。如果发生这种情况,Solr通常会很慢。

因此,问问自己,你是否真的需要在每一秒都有提交。如果是的话,最好从'newSearcher'中删除所有查询,因为提交它经常会使它们变得无用。