--- title: "集群信息更新间隔配置" date: 2026-03-11 lastmod: 2026-03-11 description: "cluster.info.update.interval 配置项用于控制集群信息服务的更新频率,包括磁盘使用情况和分片大小信息的收集间隔。" tags: ["集群", "信息更新", "磁盘监控", "主节点"] summary: "配置项作用 # cluster.info.update.interval 配置项用于控制 InternalClusterInfoService 集群信息服务的更新频率。 该服务定期收集集群中的关键信息,包括每个节点的磁盘使用情况、分片大小信息等,这些信息被用于路由决策、磁盘管理和分片平衡。 配置项属性 # 配置路径: cluster.info.update.interval 数据类型: TimeValue(时间值) 默认值: 30s(30秒) 最小值: 10s(10秒) 是否可选: 是 是否动态: 是(可动态更新,无需重启) 配置项详解 # 工作机制 # 主节点上的 InternalClusterInfoService │ │ (每隔 interval 时间) ↓ 收集节点统计信息 │ ├── 磁盘使用情况(最少/最多可用空间) ├── 分片大小信息 ├── 分片到数据路径的映射 └── 节点和数据路径上的保留空间 ↓ 更新集群信息缓存 │ ↓ 用于路由决策和分片分配 服务特点 # 仅运行在主节点: InternalClusterInfoService 只在集群的主节点上运行 事件触发更新: 当有新数据节点加入集群时,会立即触发更新(无需等待间隔时间) 动态可调: 更新间隔可以在运行时动态调整 收集的信息 # 信息类型 说明 用途 节点磁盘使用情况 最少可用空间、最多可用空间 磁盘阈值检查、分片分配决策 分片大小信息 每个分片的大小 负载均衡、容量规划 数据路径映射 分片到数据路径的路由关系 存储管理 保留空间 每个节点/数据路径的保留空间 磁盘安全阈值计算 配置建议 # 生产环境(标准) # cluster." --- ## 配置项作用 `cluster.info.update.interval` 配置项用于控制 **InternalClusterInfoService** 集群信息服务的更新频率。 该服务定期收集集群中的关键信息,包括每个节点的磁盘使用情况、分片大小信息等,这些信息被用于路由决策、磁盘管理和分片平衡。 ## 配置项属性 - **配置路径**: `cluster.info.update.interval` - **数据类型**: `TimeValue`(时间值) - **默认值**: `30s`(30秒) - **最小值**: `10s`(10秒) - **是否可选**: 是 - **是否动态**: 是(可动态更新,无需重启) ## 配置项详解 ## 工作机制 ``` 主节点上的 InternalClusterInfoService │ │ (每隔 interval 时间) ↓ 收集节点统计信息 │ ├── 磁盘使用情况(最少/最多可用空间) ├── 分片大小信息 ├── 分片到数据路径的映射 └── 节点和数据路径上的保留空间 ↓ 更新集群信息缓存 │ ↓ 用于路由决策和分片分配 ``` ## 服务特点 - **仅运行在主节点**: InternalClusterInfoService 只在集群的主节点上运行 - **事件触发更新**: 当有新数据节点加入集群时,会立即触发更新(无需等待间隔时间) - **动态可调**: 更新间隔可以在运行时动态调整 ## 收集的信息 | 信息类型 | 说明 | 用途 | |----------|------|------| | 节点磁盘使用情况 | 最少可用空间、最多可用空间 | 磁盘阈值检查、分片分配决策 | | 分片大小信息 | 每个分片的大小 | 负载均衡、容量规划 | | 数据路径映射 | 分片到数据路径的路由关系 | 存储管理 | | 保留空间 | 每个节点/数据路径的保留空间 | 磁盘安全阈值计算 | ## 配置建议 ## 生产环境(标准) ```yaml cluster.info.update.interval: 30s ``` **建议**: 保持默认值 `30s`。这是经过验证的平衡值,适合大多数生产环境。 ## 大型集群 ```yaml cluster.info.update.interval: 60s ``` **建议**: 增加到 `60s-120s`。当集群节点数量多(如 100+ 节点)时,收集信息开销较大,应延长间隔以减少主节点负担。 ## 小型集群 ```yaml cluster.info.update.interval: 20s ``` **建议**: 可减少到 `20s`。小型集群(节点少于 10 个)可以更频繁地更新,以获得更实时的信息。 ## 频繁变更环境 ```yaml cluster.info.update.interval: 15s ``` **建议**: 设置为最小值 `15s-20s`。当集群节点频繁加入/退出或数据快速变化时使用。 ## 代码示例 ## easysearch.yml 配置 ```yaml # 生产环境标准配置 cluster: info: update: interval: 30s timeout: 15s ``` ## 大型集群配置 ```yaml cluster: info: update: interval: 90s # 减少更新频率 timeout: 30s # 相应增加超时时间 ``` ## 动态更新配置 ```bash # 通过 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/内存资源有限 ## 使用场景 ## 磁盘阈值检查 集群根据收集的磁盘使用信息执行分片分配决策: ```yaml 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` 之间完成信息收集。