【问题标题】:Solr updates are very slowSolr 更新很慢
【发布时间】:2010-10-20 14:38:50
【问题描述】:

我发现我的数据库中的 Solr 更新非常缓慢。该数据库只有 900 个文档。我们使用具有以下设置的自动提交,并且有时自动提交会花费很长时间来阻止更新:

<autoCommit> 
  <maxDocs>10000</maxDocs>
  <maxTime>1000</maxTime>
</autoCommit>

900 个文档在 74 秒内可以发生的事情。

想法?

这里是日志sn-p:

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 获取目录

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 提交

还有提交日志:

2010 年 10 月 18 日上午 11:54:00 org.apache.solr.update.DirectUpdateHandler2 提交

INFO:开始提交(optimize=false,waitFlush=true,waitSearcher=true)

2010 年 10 月 18 日上午 11:54:00 org.apache.solr.search.SolrIndexSearcher

信息:打开 Searcher@29b003 主要

2010 年 10 月 18 日上午 11:54:00 org.apache.solr.update.DirectUpdateHandler2 提交

信息:end_commit_flush

2010 年 10 月 18 日上午 11:54:00 org.apache.solr.search.SolrIndexSearcher 温暖

INFO:自动预热 Searcher@29b003 main 来自 Searcher@718c93 main filterCache{lookups=0,hits=0,hitratio=0.00,inserts=512,evictions=0,size=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 温暖

INFO:Searcher@29b003 main 的自动升温结果 filterCache{lookups=0,hits=0,hitratio=0.00,inserts=256,evictions=0,size=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 温暖

INFO:自动预热 Searcher@29b003 main 来自 Searcher@718c93 main queryResultCache{lookups=0,hits=0,hitratio=0.00,inserts=256,evictions=0,size=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 温暖

INFO:Searcher@29b003 main 的自动升温结果 queryResultCache{lookups=0,hits=0,hitratio=0.00,inserts=256,evictions=0,size=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 温暖

INFO:自动预热 Searcher@29b003 main 来自 Searcher@718c93 main documentCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=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 温暖

INFO:Searcher@29b003 main 的自动升温结果 documentCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=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 关闭

【问题讨论】:

  • 取决于 Solr 必须做什么样的分析...你能发布你的 schema.xml 吗?
  • 没什么特别的——每个文档有十几个字段。 5 个方面。
  • 有趣的是,其中一位搜索者的预热时间很长,为什么会这样?

标签: lucene solr


【解决方案1】:

使用&lt;maxTime&gt;1000&lt;/maxTime&gt;,您每秒都会有一个提交。每次 Solr 进行提交时,都会发生几件事:索引搜索器关闭并重新打开,缓存被旧缓存加热,一些查询可能会自动启动(查看 solrconfig 中的“newSearcher”设置) .在某些时候,您可能会有重叠的提交。如果发生这种情况,Solr 通常会非常慢。

所以问问自己你是否真的需要每秒提交一次。如果是,最好从“newSearcher”中删除所有查询,因为频繁提交会使它们无用。

【讨论】:

  • 我假设在您提交之前数据不可用于搜索。所以逻辑是经常异步应用少量更改。其次,我认为 DirectUpdateHandler2 似乎串行处理更新请求(包括提交) - 没有重叠。
  • 为什么? “逻辑是经常异步应用少量更改”->这是实时的,在正常情况下绝对没有必要。对于你的第二个问题:问题是索引需要一段时间+预热查询(如果缓存大小!= 0)=>你会得到很多更新程序=>很快达到最大更新程序=>性能瓶颈!只需尝试将 1000 设置为 60000
  • 这应该是公认的答案。或者,您可以从执行更新的代码中进行手动提交 (SolrServer.commit())。那么就不需要自动提交了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 2020-10-24
相关资源
最近更新 更多