--- title: "Fetch Shard Store 线程池保活时间配置" date: 2026-03-02 lastmod: 2026-03-02 description: "thread_pool.fetch_shard_store.keep_alive 配置项用于控制分片存储元数据获取线程池弹性线程的保活时间。" tags: ["线程池", "分片存储", "资源管理", "ThreadPool"] summary: "配置项作用 # thread_pool.fetch_shard_store.keep_alive 配置项用于控制分片存储元数据获取线程池中弹性线程的保活时间。 当线程数超过核心线程数时,空闲的弹性线程在指定时间后会被回收。 配置项属性 # 配置路径: thread_pool.fetch_shard_store.keep_alive 数据类型: TimeValue(时间值) 默认值: 5m(5 分钟) 是否可选: 是 作用域: NodeScope(节点级别) 动态更新: 是(可以动态更新,无需重启) 配置项详解 # 工作机制 # 弹性线程生命周期 核心线程 (core): ├── 数量: 固定 (默认 1) ├── 创建: 启动时 ├── 回收: 永不 └-- 始终保持活跃 弹性线程: ├── 创建: 分片迁移/恢复需要时 ├── 用途: 应对查询负载 ├── 空闲: 等待下次任务 └-- 空闲超过 keep_alive → 回收 keep_alive 时间影响 # 不同 keep_alive 值的影响 keep_alive = 5m (默认): ├── 平衡性能和资源 ✅ ├── 应对间歇迁移 ✅ └-- 适用大多数场景 ✅ keep_alive = 10-15m: ├── 快速响应连续迁移 ✅ ├-- 减少创建开销 └-- 适用频繁迁移场景 keep_alive = 2-3m: ├── 资源释放快 ├── 节省资源 └-- 适用稳定环境 配置建议 # 默认配置(推荐) # thread_pool: fetch_shard_store: keep_alive: 5m # 默认值 频繁迁移场景 # thread_pool: fetch_shard_store: keep_alive: 10m # 长时间保活 资源优化 # thread_pool: fetch_shard_store: keep_alive: 2m # 快速回收 相关配置 # 配置项 作用 默认值 fetch_shard_store." --- ## 配置项作用 `thread_pool.fetch_shard_store.keep_alive` 配置项用于控制**分片存储元数据获取线程池中弹性线程的保活时间**。 当线程数超过核心线程数时,空闲的弹性线程在指定时间后会被回收。 ## 配置项属性 - **配置路径**: `thread_pool.fetch_shard_store.keep_alive` - **数据类型**: `TimeValue`(时间值) - **默认值**: `5m`(5 分钟) - **是否可选**: 是 - **作用域**: NodeScope(节点级别) - **动态更新**: 是(可以动态更新,无需重启) ## 配置项详解 ## 工作机制 ``` 弹性线程生命周期 核心线程 (core): ├── 数量: 固定 (默认 1) ├── 创建: 启动时 ├── 回收: 永不 └-- 始终保持活跃 弹性线程: ├── 创建: 分片迁移/恢复需要时 ├── 用途: 应对查询负载 ├── 空闲: 等待下次任务 └-- 空闲超过 keep_alive → 回收 ``` ## keep_alive 时间影响 ``` 不同 keep_alive 值的影响 keep_alive = 5m (默认): ├── 平衡性能和资源 ✅ ├── 应对间歇迁移 ✅ └-- 适用大多数场景 ✅ keep_alive = 10-15m: ├── 快速响应连续迁移 ✅ ├-- 减少创建开销 └-- 适用频繁迁移场景 keep_alive = 2-3m: ├── 资源释放快 ├── 节省资源 └-- 适用稳定环境 ``` ## 配置建议 ## 默认配置(推荐) ```yaml thread_pool: fetch_shard_store: keep_alive: 5m # 默认值 ``` ## 频繁迁移场景 ```yaml thread_pool: fetch_shard_store: keep_alive: 10m # 长时间保活 ``` ## 资源优化 ```yaml thread_pool: fetch_shard_store: keep_alive: 2m # 快速回收 ``` ## 相关配置 | 配置项 | 作用 | 默认值 | |--------|------|--------| | `fetch_shard_store.keep_alive` | 线程保活时间 | 5m | | `fetch_shard_store.core` | 核心线程数 | 1 | | `fetch_shard_store.max` | 最大线程数 | 2 × CPU核心数 | ## 注意事项 1. **默认值**: 默认值为 `5m`,适用于大多数场景。 2. **动态更新**: 支持动态更新,无需重启。 3. **迁移频率**: 根据实际的迁移频率选择。 4. **资源权衡**: 平衡性能和资源占用。