【问题标题】:why merging of segments in costly CPU-wise in Elasticsearch?为什么在 Elasticsearch 中以昂贵的 CPU 方式合并段?
【发布时间】:2021-05-12 05:08:37
【问题描述】:

我看到每次ES遇到高CPU问题时,总是Lucene Merge Thread。

据我了解,段已经排序,因此您每次只需合并两个已排序的段,即合并排序的合并过程。为什么合并成本如此之高。还是我错过了什么?

【问题讨论】:

    标签: elasticsearch lucene


    【解决方案1】:

    合并过程在 IO 和 CPU 上的开销很大的原因有两个:

    1. Lucene 使用Skip list 数据结构,它们的合并成本很高,有一篇关于Skip list merge here 的好文章。
    2. 可以同时发生多个并行合并。
    3. Lucene 需要创建第三个段并合并这两个段,因此您需要足够的空间。

    有一篇关于段合并的好博文here

    【讨论】:

    • 感谢@kaveh 的回答:)
    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2010-12-12
    • 2015-07-12
    • 2014-05-18
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多