【问题标题】:what value to be used for max_num_segments for Eslastic search 7.9 while doing forcemerge?在进行强制合并时,Elasticsearch 7.9 的 max_num_segments 使用什么值?
【发布时间】:2020-10-12 17:26:27
【问题描述】:

我正在将 ES 1.4.2 升级到 ES 7.9。为此,我必须通过重新索引 API 来进行远程索引,以将所有数据从旧集群获取到新集群。但是在重新索引后,ES 7.9 的搜索查询性能下降了很多。所以我打算做 forcemerge 以提高查询性能。如果我决定强制合并,我应该为 max_num_segments 使用哪个值?没有提供指导方针。 旧集群有 2 个主分片,一个有 18 个 16 段,第二个有 18 个段。远程索引后的新集群有 2 个主分片,一个有 27 个段,第二个有 30 个段。 很高兴指导我使用 max_num_segments 的值。谢谢

【问题讨论】:

    标签: elasticsearch elasticsearch-performance


    【解决方案1】:

    虽然您没有提供有关集群、索引大小、文档、副本、堆大小、搜索查询等的任何信息,但很难说搜索性能不佳的根本原因是什么。但一般来说,减少分段会提高搜索性能,合并过程会自动发生,在极少数情况下需要手动干预,但您仍然可以使用强制合并 API,它不应该跨越5GB 阈值。

    请参考我的this SO answer 了解更多关于合并过程和 API 的信息,尝试使用max_num_segments=1 并且 ES 会尝试将其减少到最小段数(5 GB 阈值可能会阻止某些段不符合合并条件)。

    另外,请使用segment API 查看您的分段大小并将其与其他所需信息一起添加。

    【讨论】:

    • 我有一个单节点 ES 集群,ES 1.4.2 上的索引为 27GB,远程重新索引后在 7.9 上减少到 17GB。 ES 1.4.2 上的分片数为 5,而 ES 7.9 上的分片数为 2。只有 1 个节点的集群,所以 0 个副本。我为 ES 7.9 提供的堆大小为 4GB,而为 ES 1.4.2 提供的堆大小为 1 GB。内存为 8GB。操作系统 windows 10. 搜索查询 :localhost:9200/cgh_hs_hg19_20170821/_search?scroll=1m { "size": 1000, "query" : { "match_phrase" : { "num_hits" : "1" } }
    • @GauriA 能否解决这个问题,如果我的回答有帮助,请点赞并接受
    • @GauriA 能否提供更新,如果有用,请不要忘记投票并接受答案,在此先感谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多