配置项作用 #
cluster.snapshot.info.max_concurrent_fetches 配置项用于控制从快照仓库并发获取分片大小信息的最大请求数量。
在快照恢复过程中,节点需要获取快照中每个分片的大小信息,此配置控制同时进行多少个并发获取请求。
配置项属性 #
- 配置路径:
cluster.snapshot.info.max_concurrent_fetches - 数据类型:
integer - 默认值:
5 - 最小值:
1 - 是否可选: 是
- 是否动态: 是(支持动态更新)
配置项详解 #
工作机制 #
快照恢复流程
需要获取分片大小信息的分片列表
│
↓
max_concurrent_fetches = 5
│
↓
并发控制
│
├── 请求 1 ──→ 快照仓库
├── 请求 2 ──→ 快照仓库
├── 请求 3 ──→ 快照仓库
├── 请求 4 ──→ 快照仓库
└── 请求 5 ──→ 快照仓库
│
↓
请求完成后继续处理剩余分片
并发管理 #
分片获取队列
unknownShards: [分片1, 分片2, 分片3, ..., 分片50]
│
↓
计算本次并发数 = min(剩余分片数, max_concurrent_fetches)
│
↓
启动并发请求
│
├── activeFetches++(启动请求时)
└── activeFetches--(完成请求时)
│
↓
继续处理下一个分片
配置建议 #
生产环境(标准) #
cluster.snapshot.info.max_concurrent_fetches: 5
建议: 保持默认值 5。适用于大多数生产环境。
高性能仓库 #
cluster.snapshot.info.max_concurrent_fetches: 10
建议: 增加到 10-20。当快照仓库性能强劲且网络带宽充足时使用。
低性能仓库 #
cluster.snapshot.info.max_concurrent_fetches: 2
建议: 减少到 2-3。当快照仓库性能较弱或网络延迟高时使用。
大规模恢复 #
cluster.snapshot.info.max_concurrent_fetches: 15
建议: 增加到 15-20。当需要恢复大量分片且仓库性能足够时使用。
代码示例 #
easysearch.yml 配置 #
cluster:
snapshot:
info:
max_concurrent_fetches: 5 # 默认值
高性能环境配置 #
cluster:
snapshot:
info:
max_concurrent_fetches: 10 # 更高的并发
动态更新配置 #
# 通过 API 动态更新并发数
PUT _cluster/settings
{
"transient": {
"cluster.snapshot.info.max_concurrent_fetches": 8
}
}
完整的快照配置 #
cluster:
snapshot:
info:
max_concurrent_fetches: 5
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
cluster.snapshot.info.max_concurrent_fetches | 并发获取分片信息 | 5 |
snapshots.infos.max_concurrent_fetches | 同上(别名) | - |
性能影响分析 #
| 并发设置 | 优点 | 缺点 |
|---|---|---|
| 较低(1-2) | 减少仓库压力 | 恢复速度慢 |
| 中等(5) | 平衡速度和压力 | 标准设置 |
| 较高(10-20) | 加快恢复速度 | 可能过载仓库 |
瓶颈分析 #
恢复速度瓶颈分析
如果 max_concurrent_fetches 设置过低:
↓
并发请求不足
↓
等待请求完成
↓
恢复速度受限 ❌
如果 max_concurrent_fetches 设置过高:
↓
大量并发请求
↓
仓库性能或网络成为瓶颈
↓
请求排队或超时 ❌
使用场景 #
推荐提高并发的场景 #
- 高性能仓库: SSD 存储、本地文件系统
- 高速网络: 低延迟、高带宽
- 大规模恢复: 需要恢复大量分片
- 时间敏感: 需要尽快完成恢复
推荐降低并发的场景 #
- 低性能仓库: 网络存储(如 S3、NFS)
- 有限带宽: 网络带宽受限
- 共享仓库: 多个集群共享同一仓库
- 不稳定网络: 网络连接不稳定
恢复过程示例 #
标准并发(默认) #
50 个分片需要恢复,max_concurrent_fetches = 5
批次 1: 分片 1-5 (5 个并发)
批次 2: 分片 6-10 (5 个并发)
...
批次 10: 分片 46-50 (5 个并发)
总时间 = 10 批 × 平均单批时间
高并发配置 #
50 个分片需要恢复,max_concurrent_fetches = 10
批次 1: 分片 1-10 (10 个并发)
批次 2: 分片 11-20 (10 个并发)
批次 3: 分片 21-30 (10 个并发)
批次 4: 分片 31-40 (10 个并发)
批次 5: 分片 41-50 (10 个并发)
总时间 = 5 批 × 平均单批时间
(约快一倍,取决于仓库性能)
注意事项 #
动态更新: 此配置支持动态更新,修改后立即生效。
仓库类型影响: 不同类型的快照仓库(本地文件、S3、HDFS 等)有不同的性能特征。
网络因素: 与快照仓库之间的网络延迟和带宽会影响最佳并发数。
监控建议: 监控恢复操作的完成时间和成功率,根据实际情况调整。
资源限制: 考虑仓库服务的最大并发连接限制。
与恢复并发的区别: 此配置只控制获取分片信息的并发,不控制实际的分片数据恢复并发。
测试验证: 在生产环境调整前,建议在测试环境中验证配置的效果。





