【问题标题】:Solr optimize too frequently?Solr 优化太频繁?
【发布时间】:2012-11-01 02:53:04
【问题描述】:

我们在一台服务器上有 16 个内核,每个内核都有 450 万个客户订单。最近,我们每小时向每个核心提交 200 个新订单,然后优化所有核心。我们发现每次优化操作至少需要 30 分钟。我有几个问题:

  1. 我们应该在每次提交后进行优化吗?如果我们每天进行优化,在我们的情况下会显着降低查询性能吗?

  2. 我们只会将新订单添加到 solr 中,绝不会更新或删除 solr 中的任何订单。那么,我们可以只优化我们提交的索引,换句话说,我们可以按日期范围优化索引吗?

【问题讨论】:

    标签: solr


    【解决方案1】:

    不,不要在每次提交后进行优化。您应该优化的频率取决于您更新的频率。

    来自http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations

    如果您有一个快速变化的索引,而不是优化,您 可能只是想使用较低的合并因子。优化非常 昂贵,如果指数不断变化,轻微 性能提升不会持续很长时间。权衡通常不值得 它用于非静态索引。

    “它会显着降低查询性能”的问题是您必须自己测试的问题,但要衡量、衡量、衡量。然后,确定性能是否真的有问题。如果一个 50 毫秒的查询变成一个 60 毫秒的查询,响应时间会增加 20%,但这有关系吗?只有你能回答这些权衡。但你必须有数字。

    【讨论】:

    • 为什么较低的合并因子比优化快速变化的索引更好?你能给我更多的信息吗?
    【解决方案2】:

    您应该分批提交并按间隔进行优化。 由于优化是一项非常繁重的操作,其中索引段组合成一个段以提高性能。

    但是,使用最新的 Lucene,您甚至可能不需要使用 Optimize
    最新版本已弃用优化:-

    此方法已被弃用,因为它效率极低且 很少有正当理由。 Lucene 的多段搜索性能 随着时间的推移得到改进,现在默认的 TieredMergePolicy 目标 有删除的片段。

    【讨论】:

    • 抱歉,我不太了解 Lucene。我刚刚下载了 solr 并部署在我们的服务器上。我正在使用一个月前发布的 solr 4.0。是否包含你所说的变化?
    • 当前 lucene 版本提供了这些更改,并将与 solr 一起打包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2012-10-30
    相关资源
    最近更新 更多