配置项概述 #
cluster.info.update.* 配置项组用于控制主节点收集和更新集群信息(如磁盘使用率、分片大小)的行为。这些信息用于分片分配决策和磁盘阈值管理。
| 配置项 | 默认值 | 说明 |
|---|---|---|
cluster.info.update.interval | 30s | 集群信息更新间隔 |
cluster.info.update.timeout | 15s | 更新操作的超时时间 |
cluster.info.update.interval #
配置项作用 #
控制主节点收集和更新集群信息(如磁盘使用率、分片大小)的频率。
配置项类型 #
该配置项为动态配置,可以在运行时通过集群设置 API 进行修改。
默认值 #
30s(30秒)
是否必需 #
可选配置项(有默认值)
取值范围 #
10s ~ 正无穷
配置格式 #
# 默认配置
cluster.info.update.interval: 30s
# 更频繁的更新
cluster.info.update.interval: 10s
# 较少频率的更新
cluster.info.update.interval: 60s
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
cluster.info.update.interval | 30s | 集群信息更新间隔 |
cluster.info.update.timeout | 15s | 更新操作的超时时间 |
工作原理 #
集群信息收集过程:
┌─────────────────────────────────────────────────────────────────┐
│ 集群信息更新流程 │
└─────────────────────────────────────────────────────────────────┘
主节点启动
│
▼
创建定时任务(间隔 = update.interval)
│
├── 收集节点磁盘使用情况
├── 收集索引分片大小
├── 计算集群统计信息
└── 更新集群状态
│
▼
分片分配决策使用此信息
使用场景 #
1. 默认配置(推荐大多数场景) #
cluster.info.update.interval: 30s
平衡系统负载和信息时效性。
2. 高频更新(动态环境) #
cluster.info.update.interval: 10s
适用场景:
- 数据快速增长的集群
- 频繁有节点加入/离开
- 需要快速响应磁盘变化
3. 低频更新(稳定环境) #
cluster.info.update.interval: 60s
适用场景:
- 稳定的生产环境
- 节点数量固定
- 数据增长平缓
信息收集内容 #
每次更新收集以下信息:
磁盘使用信息:
- 每个节点的磁盘总容量
- 每个节点的磁盘使用量
- 每个数据路径的可用空间
分片大小信息:
- 每个分段的磁盘占用
- 每个索引的总大小
- 每个节点的分片分布
推荐设置建议 #
| 环境类型 | 推荐间隔 | 说明 |
|---|---|---|
| 默认/通用 | 30s | 平衡配置 |
| 动态环境 | 10-20s | 快速响应变化 |
| 稳定生产 | 60s | 减少系统开销 |
| 大规模集群 | 60s | 减少主节点负载 |
监控建议 #
# 查看当前配置
GET /_cluster/settings?filter_path=*.cluster.info.update.interval
# 查看磁盘使用情况
GET /_cat/allocation?v
# 查看节点磁盘使用
GET /_cat/nodes?v&h=name,disk.used_percent,disk.total
常见问题 #
问题 1:分片分配不及时
可能原因: 更新间隔过长
解决方案:
PUT /_cluster/settings
{
"transient": {
"cluster.info.update.interval": "10s"
}
}
问题 2:主节点负载过高
可能原因: 更新间隔过短,频繁收集信息
解决方案:
PUT /_cluster/settings
{
"transient": {
"cluster.info.update.interval": "60s"
}
}
cluster.info.update.timeout #
配置项作用 #
控制主节点从各节点收集集群信息(如磁盘使用率、分片大小)时的单次请求超时时间。如果某个节点在超时时间内未响应,该节点的信息将不被包含在本次更新中。
默认值 #
15s(15秒)
取值范围 #
5s ~ 正无穷
配置格式 #
# 默认配置
cluster.info.update.timeout: 15s
# 更短的超时(适用于低延迟网络)
cluster.info.update.timeout: 10s
# 更长的超时(适用于高延迟网络或慢速磁盘)
cluster.info.update.timeout: 30s
工作原理 #
┌─────────────────────────────────────────────────────────────────┐
│ 超时机制说明 │
└─────────────────────────────────────────────────────────────────┘
主节点发起信息收集
│
├── 向节点 A 发送请求 ──> 正常响应 ✓
├── 向节点 B 发送请求 ──> 超时 ✗ (跳过该节点)
├── 向节点 C 发送请求 ──> 正常响应 ✓
└── 向节点 D 发送请求 ──> 正常响应 ✓
结果:基于节点 A、C、D 的信息更新集群状态
节点 B 的信息将在下次更新时重新尝试获取
推荐设置建议 #
| 网络环境 | 磁盘性能 | 推荐超时 | 说明 |
|---|---|---|---|
| 局域网 | SSD | 10s-15s | 默认配置 |
| 跨地域 | HDD | 30s | 高延迟环境 |
| 云环境 | 网络 SSD | 15s | 标准配置 |
| 高负载 | 慢速磁盘 | 30s-60s | 磁盘响应慢 |
使用场景 #
默认配置(推荐):
cluster.info.update.timeout: 15s
适用于大多数标准部署场景。
快速失败场景:
cluster.info.update.timeout: 10s
cluster.info.update.interval: 30s
适用于网络稳定、希望快速发现节点故障的场景。
高延迟容忍场景:
cluster.info.update.timeout: 60s
cluster.info.update.interval: 60s
适用于跨地域部署或有慢速存储的场景。
完整配置示例 #
# easysearch.yml
# 集群信息更新配置
# 更新间隔:每 30 秒收集一次
cluster.info.update.interval: 30s
# 超时时间:单次请求 15 秒超时
cluster.info.update.timeout: 15s
组合配置指南 #
| 场景 | interval | timeout | 说明 |
|---|---|---|---|
| 默认配置 | 30s | 15s | 平衡配置 |
| 快速响应 | 10s | 10s | 频繁收集,快速超时 |
| 稳定环境 | 60s | 15s | 降低频率,标准超时 |
| 高延迟环境 | 60s | 60s | 降低频率,延长超时 |
| 宽松配置 | 30s | 30s | timeout ≥ interval |
注意事项 #
- 动态更新:这些配置为动态配置,可在线修改
- 仅主节点:此服务只在主节点上运行
- 超时与间隔关系:应确保 timeout ≤ interval,避免连续收集操作重叠
- 系统开销:频繁更新会增加主节点负载
- 信息时效性:间隔过长会导致分片分配决策基于过时信息
- 超时跳过:超时的节点信息会被跳过,影响本次分配决策的准确性
- 网络延迟:timeout 应考虑实际网络延迟和磁盘响应时间





