📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

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.keep_alive线程保活时间5m
fetch_shard_store.core核心线程数1
fetch_shard_store.max最大线程数2 × CPU核心数

注意事项 #

  1. 默认值: 默认值为 5m,适用于大多数场景。

  2. 动态更新: 支持动态更新,无需重启。

  3. 迁移频率: 根据实际的迁移频率选择。

  4. 资源权衡: 平衡性能和资源占用。