You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch版本升级后出现大量文档删除问题排查

Elasticsearch集群升级后异常问题排查

集群环境

  • 3个master节点:2核2GB t3.small EC2实例
  • 2个data节点(data-0、data-1):原2核8GB m6a.large EC2实例,后升级为4核16GB;数据节点最大堆内存4GB
  • 运行环境:EKS集群
  • 核心索引40p1r:约9.2亿文档,存储大小1.9TB
  • 日常流量:平均60次/秒实时文档索引,2次/秒搜索查询

问题背景

将集群从8.3.1版本升级至8.13.4版本后,突发大量文档删除操作,进而引发大规模段合并,导致data节点CPU长时间处于100%状态,期间集群无法正常处理搜索请求与文档索引,目前无法定位大量删除的触发原因。

事件时间线

  • 16:18:执行POST /flush及PUT _cluster/settings {"persistent": {"cluster.routing.allocation.enable": "primaries"}}(实时索引流量未停止)
  • 16:20:重启data-1节点
  • 16:22:data-1节点启动,40个分片逐一分配耗时20-30分钟(此前重启分片分配仅需2-3秒),节点出现多次超过50万文档/秒的删除速率峰值
  • 16:41:重启data-0节点
  • 16:43:data-0节点启动,表现与data-1一致,分片分配耗时久,出现50万文档/秒的删除速率
  • 16:52:data-1节点CPU使用率接近100%
  • 17:15:data-0节点CPU使用率接近100%
  • 17:30:将data-1升级为4核16GB实例并重启,仍出现高删除速率峰值,最终CPU使用率仍达100%
  • 18:06:停止发送索引流量以降低集群负载
  • 18:18:所有删除峰值结束,随即出现段合并速率峰值(最高达30万文档/秒)
  • 18:45:段合并完成,两个data节点CPU使用率立即下降(节点重启后已重置cluster.routing.allocation.enable属性)

初步推测

大量段合并由大规模删除操作触发,可能是分段中已删除文档占比达到默认阈值引发自动合并。集群磁盘使用gp3 EBS,监控显示读取吞吐量达到最大值125MB/s,IOPS远低于限制值。

待解疑问

  1. 为何触发大量删除?4月整月删除速率仅约500文档/秒、合并速率约3.5千文档/秒,升级后突增到50万文档/秒删除、35万文档/秒合并,未在8.3.1至8.13.1的破坏性变更文档中找到相关内容,该现象是否属于正常升级后的行为?
  2. 为何节点重启后分片分配耗时极久?此前EKS集群版本升级时重启节点,分片分配仅需数秒,但此次ES版本升级+实例规格升级(2核转4核)后,每个节点分片分配耗时约30-40分钟?
  3. 节点重启后磁盘达到最大吞吐量,是否仅由大量删除操作导致?还是版本升级后会执行特定的大IO操作?

监控截图

  • CPU使用率:CPU使用率
  • 系统负载:系统负载
  • data-1删除速率:data-1删除速率
  • data-0删除速率:data-0删除速率
  • 段合并速率:段合并速率
  • 操作速率:操作速率

内容的提问来源于stack exchange,提问作者Luv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 18:03:14