📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

cluster.info.update.interval 配置项用于控制 InternalClusterInfoService 集群信息服务的更新频率。

该服务定期收集集群中的关键信息,包括每个节点的磁盘使用情况、分片大小信息等,这些信息被用于路由决策、磁盘管理和分片平衡。

配置项属性 #

  • 配置路径: cluster.info.update.interval
  • 数据类型: TimeValue(时间值)
  • 默认值: 30s(30秒)
  • 最小值: 10s(10秒)
  • 是否可选: 是
  • 是否动态: 是(可动态更新,无需重启)

配置项详解 #

工作机制 #

主节点上的 InternalClusterInfoService
    │
    │ (每隔 interval 时间)
    ↓
收集节点统计信息
    │
    ├── 磁盘使用情况(最少/最多可用空间)
    ├── 分片大小信息
    ├── 分片到数据路径的映射
    └── 节点和数据路径上的保留空间
    ↓
更新集群信息缓存
    │
    ↓
用于路由决策和分片分配

服务特点 #

  • 仅运行在主节点: InternalClusterInfoService 只在集群的主节点上运行
  • 事件触发更新: 当有新数据节点加入集群时,会立即触发更新(无需等待间隔时间)
  • 动态可调: 更新间隔可以在运行时动态调整

收集的信息 #

信息类型说明用途
节点磁盘使用情况最少可用空间、最多可用空间磁盘阈值检查、分片分配决策
分片大小信息每个分片的大小负载均衡、容量规划
数据路径映射分片到数据路径的路由关系存储管理
保留空间每个节点/数据路径的保留空间磁盘安全阈值计算

配置建议 #

生产环境(标准) #

cluster.info.update.interval: 30s

建议: 保持默认值 30s。这是经过验证的平衡值,适合大多数生产环境。

大型集群 #

cluster.info.update.interval: 60s

建议: 增加到 60s-120s。当集群节点数量多(如 100+ 节点)时,收集信息开销较大,应延长间隔以减少主节点负担。

小型集群 #

cluster.info.update.interval: 20s

建议: 可减少到 20s。小型集群(节点少于 10 个)可以更频繁地更新,以获得更实时的信息。

频繁变更环境 #

cluster.info.update.interval: 15s

建议: 设置为最小值 15s-20s。当集群节点频繁加入/退出或数据快速变化时使用。

代码示例 #

easysearch.yml 配置 #

# 生产环境标准配置
cluster:
  info:
    update:
      interval: 30s
      timeout: 15s

大型集群配置 #

cluster:
  info:
    update:
      interval: 90s      # 减少更新频率
      timeout: 30s       # 相应增加超时时间

动态更新配置 #

# 通过 API 动态更新(无需重启)
PUT _cluster/settings
{
  "transient": {
    "cluster.info.update.interval": "45s"
  }
}

相关配置 #

配置项作用默认值
cluster.info.update.timeout信息收集超时时间15s
cluster.routing.allocation.disk.threshold_enabled是否启用磁盘阈值检查true
cluster.routing.allocation.disk.watermark.low磁盘低水位线85%

配置配合说明 #

  • interval × timeout: 通常 timeout 应小于 interval,避免单次收集时间超过更新间隔
  • 动态更新: 两个配置都支持动态更新,可以根据运行情况调整

性能影响 #

interval 设置优点缺点
较短(10-20s)信息更实时,磁盘问题检测更快增加主节点 CPU 和网络开销
中等(30s)平衡实时性和性能标准设置,适合大多数场景
较长(60-120s)减少主节点负担信息更新延迟,磁盘问题检测较慢

性能考虑因素 #

  1. 集群规模: 节点越多,收集信息开销越大
  2. 分片数量: 分片越多,收集分片大小信息越耗时
  3. 网络延迟: 节点间网络延迟影响收集速度
  4. 主节点性能: 主节点 CPU/内存资源有限

使用场景 #

磁盘阈值检查 #

集群根据收集的磁盘使用信息执行分片分配决策:

cluster.routing.allocation.disk.watermark.low: 85%
cluster.routing.allocation.disk.watermark.high: 90%
cluster.routing.allocation.disk.watermark.flood_stage: 95%

分片平衡 #

集群使用分片大小信息进行负载均衡,确保各节点负载均匀。

注意事项 #

  1. 仅在主节点生效: 此配置只在主节点上执行,其他节点忽略此配置。

  2. 事件触发更新: 即使设置了较长的间隔,当有新节点加入时也会立即触发更新。

  3. 动态更新: 可以通过集群设置 API 动态修改,修改后立即生效。

  4. 最小值限制: 不能设置小于 10s 的值,这是系统的最小限制。

  5. 监控建议: 监控信息更新的耗时。如果更新耗时接近或超过间隔时间,应考虑增加间隔或优化集群。

  6. 与超时配置的关系: 确保 timeout 配置足够长,能够在 interval 之间完成信息收集。