--- title: "Fetch Shard Store 线程池最大大小配置" date: 2026-01-20 lastmod: 2026-01-20 description: "thread_pool.fetch_shard_store.max 配置项用于控制分片存储元数据获取线程池的最大线程数。" tags: ["线程池", "分片存储", "性能调优", "ThreadPool"] summary: "配置项作用 # 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." --- ## 配置项作用 `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 个节点 ├── 迁移速度: 很快 └-- 适用: 超大型集群 ``` ## 配置建议 ## 默认配置(推荐) ```yaml thread_pool: fetch_shard_store: # max 使用默认计算值 ``` ## 大型集群 ```yaml thread_pool: fetch_shard_store: max: 32 # 增加最大值 ``` ## 超大型集群 ```yaml thread_pool: fetch_shard_store: core: 4 max: 64 keep_alive: 10m ``` ## 动态更新 ```json 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 | ## 注意事项 1. **默认值**: 默认值为 `2 × CPU核心数`,动态计算。 2. **动态更新**: 支持动态更新,无需重启。 3. **并发能力**: 决定同时可以查询多少个节点的存储信息。 4. **迁移速度**: 影响分片迁移的整体速度。 5. **集群规模**: 根据集群规模调整。