集群yellow状态恢复green时间变长

更新时间:
复制 MD 格式

问题现象

在为新索引添加副本时,集群从yellow状态恢复到green状态的时间异常延长,从原来的1小时左右增加到2个多小时。

问题原因

集群的 indices.recovery.max_bytes_per_sec 参数被修改为默认值40MB,导致副本数据同步速度受限。

参数说明:

  • indices.recovery.max_bytes_per_sec 用于限制每个节点在数据恢复时的入站和出站流量

  • 默认值:40MB

  • 适用场景:

    • 索引添加副本后的数据同步

    • 主分片故障后副本升主的数据同步

    • 节点新增或分片重新平衡

    • 从快照恢复数据

解决方案

根据集群的实际情况(节点规格、带宽、云盘吞吐等)调整该参数值。

临时调整(集群重启后失效)

PUT _cluster/settings
{
  "transient": {
    "indices.recovery.max_bytes_per_sec": "100mb"
  }
}

永久调整(集群重启后仍有效)

PUT _cluster/settings
{
  "persistent": {
    "indices.recovery.max_bytes_per_sec": "100mb"
  }
}

建议: 参数值可根据实际需求调整,例如设置为100mb、200mb或更高。

排查方法

如果遇到类似问题,可以通过以下方式排查:

  1. 检查集群日志

    • 搜索关键词:RecoverySettingsindices.recovery.max_bytes_per_sec

    • 查看参数的历史变更记录

  2. 对比监控指标

    • 节点网络流出率是否明显降低

    • 索引存储大小变化的耗时是否异常

  3. 确认数据量

    检查写入速率和数据量是否与正常时期一致

参考文档

Elasticsearch 官方文档 - Index Recovery Settings