ES7.7.1版本fetch耗时增加原因定位

49 阅读1分钟

elasticsearch版本改动

www.elastic.co/guide/en/el…

www.elastic.co/guide/en/el…




可能会造成fetch阶段耗时增加的原因

es在7.7.0调整了高亮选取策略。

  • 原行为:高亮器(UnifiedHighlighter)在处理 keyword 类型字段时,会对所有值(包括被忽略的无效值)生成高亮片段,导致不必要的性能开销。

  • 修改内容

    • 跳过被忽略的 keyword 字段值(如空字符串或不符合条件的值)的高亮计算。

可能造成的影响

  • 条件判断开销:新增的跳过逻辑可能在遍历大量文档时引入额外检查成本(尤其对低基数 keyword 字段)。
  • 高亮片段偏移量修正:严格过滤无效值后,高亮片段的偏移量计算可能更精确,但计算复杂度可能上升

github.com/elastic/ela…

lucnen8.5调整了压缩算法

并且升级了了lucene引擎

转存失败,建议直接上传图片文件

  • 行为改动:增大了压缩块大小选择策略

  • 可能造成的影响

    • 更复杂的压缩块选择策略可能增加 CPU 开销(尤其对高频更新的热索引)。
    • 解压延迟:若文档值字段(如 _source)体积较大,解压耗时可能上升。

Elasticsearch version 7.7.0 | Elasticsearch Guide [7.7] | Elastic

issues.apache.org/jira/browse…




初步结论

目前尝试的调优无法降低fetch耗时,fetch耗时增加的准确原因正在定位,同时7.6.2版本scroll的bug正在积极复现中,持续创建scroll并删除,增加scroll计数器数 据到int最大值。然后尝试能否重置计数器,解决游标BUG。