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

配置项作用 #

thread_pool.search_throttled 相关配置项控制用于执行节流搜索操作的线程池。节流搜索是指那些被标记为低优先级或对系统资源敏感的搜索请求,这些搜索会被分配到专用的节流线程池中,避免影响正常的搜索操作。

配置项类型 #

该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。

默认值 #

thread_pool.search_throttled.size: 1
thread_pool.search_throttled.max_queue_size: 100

是否必需 #

可选配置项(有默认值)

配置格式 #

# 默认配置
thread_pool.search_throttled.size: 1
thread_pool.search_throttled.queue_size: 100

# 增加线程数
thread_pool.search_throttled.size: 2
thread_pool.search_throttled.queue_size: 200

# 增加队列大小
thread_pool.search_throttled.size: 1
thread_pool.search_throttled.queue_size: 500

相关配置项 #

配置项默认值说明
thread_pool.search_throttled.size1线程池大小
thread_pool.search_throttled.max_queue_size100最大队列大小
thread_pool.search_throttled.min_queue_size100最小队列大小
thread_pool.search_throttled.target_response_time1s目标响应时间

线程池类型 #

类型: FIXED_AUTO_QUEUE_SIZE (固定自适应队列大小)

特点:
- 固定数量的线程(默认 1 个)
- 自适应队列大小
- 根据响应时间动态调整
- 用于低优先级搜索

工作原理 #

节流搜索处理流程:

┌─────────────────────────────────────────────────────────────────┐
│                    节流搜索处理                                  │
└─────────────────────────────────────────────────────────────────┘

节流搜索请求到达
    │
    ├── 后台任务
    ├── 批量操作
    ├── 低优先级搜索
    └── 资源敏感查询
         │
         ▼
    检查线程池状态
         │
         ├── 线程空闲
         │   │
         │   └── 立即处理
         │
         └── 线程繁忙
             │
             └── 加入自适应队列等待

自适应队列机制 #

队列大小根据响应时间动态调整:

target_response_time = 1s
min_queue_size = 100
max_queue_size = 100

响应时间 < target:
  - 队列大小增长
  - 允许更多排队请求

响应时间 > target:
  - 队列大小收缩
  - 限制排队请求

使用场景 #

1. 默认配置(推荐) #

thread_pool.search_throttled.size: 1
thread_pool.search_throttled.queue_size: 100

适用于大多数集群配置。

2. 更多节流搜索 #

thread_pool.search_throttled.size: 2
thread_pool.search_throttled.max_queue_size: 200
thread_pool.search_throttled.min_queue_size: 200

适用场景:

  • 大量后台搜索任务
  • 批量数据导出
  • 定时报告生成

3. 限制节流搜索 #

thread_pool.search_throttled.size: 1
thread_pool.search_throttled.max_queue_size: 50
thread_pool.search_throttled.min_queue_size: 50

适用场景:

  • 严格控制资源使用
  • 优先保证正常搜索
  • 减少后台任务影响

推荐设置建议 #

场景推荐线程数推荐队列大小说明
默认1100标准配置
后台任务多2200-500更多容量
资源敏感150限制影响
大量导出2-4500-1000高吞吐量

监控建议 #

# 查看线程池状态
GET /_cat/thread_pool/search_throttled?v

# 查看详细统计
GET /_nodes/stats/thread_pool/search_throttled

# 查看当前队列大小
GET /_nodes/stats/thread_pool?filter_path=nodes.*.thread_pool.search_throttled

与普通搜索线程池的区别 #

特性thread_pool.searchthread_pool.search_throttled
用途正常搜索请求低优先级/节流搜索
默认线程数processors1
队列类型自适应自适应
响应时间要求快速响应可容忍延迟
资源占用高优先级低优先级

节流搜索的典型场景 #

适合节流线程池的操作:

1. 后台任务
   - 定时数据统计
   - 报告生成
   - 数据分析

2. 批量操作
   - 批量数据导出
   - 批量数据查询
   - 批量聚合计算

3. 低优先级搜索
   - 非关键查询
   - 数据探索
   - 测试查询

注意事项 #

  1. 静态配置:修改需要重启节点
  2. 默认单线程:默认只有 1 个线程
  3. 低优先级:节流搜索优先级低于正常搜索
  4. 自适应队列:队列大小根据响应时间动态调整
  5. 避免过度使用:过多的节流搜索可能仍然影响系统性能
  6. 队列满会拒绝请求:合理设置队列大小