配置项作用 #
cluster.publish.info_timeout 配置项控制集群状态发布操作在记录 INFO 级别日志前的等待时间。当集群状态发布耗时超过此配置值时,会记录一条 INFO 级别的日志,提示集群状态发布较慢。此配置用于监控集群状态发布的性能。
配置项类型 #
该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。
默认值 #
10s
是否必需 #
可选配置项(有默认值)
取值范围 #
1ms ~ 正无穷
配置格式 #
# 默认配置
cluster.publish.info_timeout: 10s
# 更敏感的监控
cluster.publish.info_timeout: 5s
# 减少日志量
cluster.publish.info_timeout: 20s
# 不记录慢发布日志
cluster.publish.info_timeout: 1h
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
cluster.publish.timeout | 30s | 发布超时时间 |
cluster.publish.info_timeout | 10s | 信息日志超时 |
工作原理 #
发布超时日志机制:
┌─────────────────────────────────────────────────────────────────┐
│ 发布日志记录 │
└─────────────────────────────────────────────────────────────────┘
开始发布集群状态
│
├── 发布耗时 < info_timeout
│ │
│ └── 不记录日志
│
├── info_timeout <= 耗时 < timeout
│ │
│ └── 记录 INFO 级别日志
│ 内容: "slow cluster state publishing took X seconds"
│
└── 发布耗时 >= timeout
│
└── 发布失败,记录 ERROR 日志
日志级别说明 #
| 耗时范围 | 日志级别 | 说明 |
|---|---|---|
| < info_timeout | - | 不记录日志 |
| >= info_timeout | INFO | 慢发布警告 |
| >= timeout | ERROR | 发布超时 |
使用场景 #
1. 默认配置(推荐) #
cluster.publish.info_timeout: 10s
适用于大多数集群配置,平衡日志量和监控敏感度。
2. 敏感监控 #
cluster.publish.info_timeout: 5s
适用场景:
- 需要密切关注集群状态
- 性能调优阶段
- 小规模集群
3. 减少日志 #
cluster.publish.info_timeout: 20s
适用场景:
- 大规模集群
- 网络延迟较高
- 减少 INFO 日志量
4. 禁用慢发布日志 #
cluster.publish.info_timeout: 1h
适用场景:
- 已知网络慢
- 不需要慢发布警告
推荐设置建议 #
| 集群规模 | info_timeout | publish.timeout | 说明 |
|---|---|---|---|
| 小型 (< 10 节点) | 5-10s | 30s | 敏感监控 |
| 中型 (10-50 节点) | 10s | 30s | 默认配置 |
| 大型 (> 50 节点) | 15-30s | 30-60s | 容忍延迟 |
| 跨地域 | 20-30s | 60s | 高延迟环境 |
慢发布原因分析 #
常见慢发布原因:
1. 网络延迟
- 跨地域部署
- 网络拥堵
- 带宽限制
2. 节点负载
- CPU 使用率高
- 内存压力大
- GC 频繁
3. 集群状态大
- 节点数量多
- 索引数量多
- 分片数量多
4. 磁盘 I/O
- 慢速存储
- I/O 争用
监控建议 #
# 查看当前配置
GET /_cluster/settings?filter_path=*.cluster.publish.info_timeout
# 查看集群状态发布日志
# grep "slow cluster state publishing" /path/to/logs
# 查看集群健康状态
GET /_cluster/health
# 监控集群状态更新
GET /_cluster/state
性能优化 #
如果频繁出现慢发布日志 #
检查网络
# 测试节点间网络延迟 ping <other-node-host>增加 info_timeout
cluster.publish.info_timeout: 20s检查集群状态大小
# 查看集群状态大小 GET /_cluster/state/_all优化集群
- 减少不必要的索引
- 清理已删除的索引
- 优化分片数量
日志示例 #
[INFO ][cluster.apiservice ] slow cluster state publishing took 12.3s
cluster_uuid: xxx-xxx-xxx
node_count: 50
index_count: 200
shard_count: 1000
注意事项 #
- 静态配置:修改需要重启节点
- 仅日志:此配置仅影响日志记录,不影响发布操作
- 与 timeout 配合:info_timeout 应小于 publish.timeout
- 监控工具:可作为性能监控的指标
- 合理设置:设置过小会产生大量日志





