配置项作用 #
thread_pool.fetch_shard_store.max 配置项用于控制分片存储元数据获取线程池的最大线程数。
这是线程池能够创建的最大线程数量上限。
配置项属性 #
- 配置路径:
thread_pool.fetch_shard_store.max - 数据类型:
Integer(整数) - 默认值:
2 × CPU核心数(受限于 2 到 Integer.MAX_VALUE) - 是否可选: 是
- 作用域: NodeScope(节点级别)
- 动态更新: 是(可以动态更新,无需重启)
配置项详解 #
工作机制 #
SCALING 线程池边界
线程池容量:
┌─────────────────────────────────────┐
│ Fetch Shard Store 线程池 │
├─────────────────────────────────────┤
│ 核心线程: core (默认 1) │
│ 弹性线程: max - core │
│ 最大线程: max (2 × CPU核心数) │
└─────────────────────────────────────┘
并发查询能力:
├── max = 16: 可同时查询 16 个节点
├── max = 32: 可同时查询 32 个节点
└── 决定存储信息获取速度
max 设置影响 #
max 值的并发影响
max = 8 (4核CPU):
├── 并发查询: 8 个节点
├── 迁移速度: 中等
└-- 适用: 中型集群
max = 16 (8核CPU):
├── 并发查询: 16 个节点
├── 迁移速度: 快
└-- 适用: 大型集群
max = 32 (16核CPU):
├── 并发查询: 32 个节点
├── 迁移速度: 很快
└-- 适用: 超大型集群
配置建议 #
默认配置(推荐) #
thread_pool:
fetch_shard_store:
# max 使用默认计算值
大型集群 #
thread_pool:
fetch_shard_store:
max: 32 # 增加最大值
超大型集群 #
thread_pool:
fetch_shard_store:
core: 4
max: 64
keep_alive: 10m
动态更新 #
PUT /_cluster/settings
{
"transient": {
"thread_pool.fetch_shard_store.max": 32
}
}
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
fetch_shard_store.max | 最大线程数 | 2 × CPU核心数 |
fetch_shard_store.core | 核心线程数 | 1 |
fetch_shard_store.keep_alive | 线程保活时间 | 5m |
注意事项 #
默认值: 默认值为
2 × CPU核心数,动态计算。动态更新: 支持动态更新,无需重启。
并发能力: 决定同时可以查询多少个节点的存储信息。
迁移速度: 影响分片迁移的整体速度。
集群规模: 根据集群规模调整。





