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

配置项作用 #

thread_pool.system_read 相关配置项控制用于执行系统级别读取操作的线程池。系统读取操作包括内部系统管理、元数据读取等操作。该线程池采用固定大小线程池类型。

配置项类型 #

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

默认值 #

thread_pool.system_read.size: half_processors_max_5
计算公式: min(allocatedProcessors / 2, 5)

thread_pool.system_read.queue_size: 2000

是否必需 #

可选配置项(有默认值)

配置格式 #

# 默认配置
thread_pool.system_read.size: 5
thread_pool.system_read.queue_size: 2000

# 增加线程数
thread_pool.system_read.size: 10
thread_pool.system_read.queue_size: 4000

# 减少线程数
thread_pool.system_read.size: 3
thread_pool.system_read.queue_size: 1000

相关配置项 #

配置项默认值说明
thread_pool.system_read.sizehalf_processors_max_5线程池大小
thread_pool.system_read.queue_size2000队列大小
thread_pool.system_write.sizehalf_processors_max_5系统写入线程池大小
thread_pool.system_write.queue_size1000系统写入队列大小

线程池类型 #

类型: FIXED (固定线程池)

特点:
- 固定数量的线程
- 有界队列
- 专门用于系统内部读取操作

工作原理 #

系统读取请求处理流程:

┌─────────────────────────────────────────────────────────────────┐
│                    系统读取请求处理                              │
└─────────────────────────────────────────────────────────────────┘

系统读取请求到达
    │
    ▼
检查线程池状态
    │
    ├── 有空闲线程
    │   │
    │   └── 立即处理
    │
    ├── 线程繁忙,队列未满
    │   │
    │   └── 加入队列等待
    │
    └── 队列已满
        │
        └── 拒绝请求

使用场景 #

1. 默认配置(推荐) #

thread_pool.system_read.size: 5
thread_pool.system_read.queue_size: 2000

适用于大多数集群配置。

2. 大规模集群 #

thread_pool.system_read.size: 10
thread_pool.system_read.queue_size: 4000

适用场景:

  • 大量系统元数据操作
  • 频繁的集群状态读取
  • 大规模索引管理

3. 资源受限 #

thread_pool.system_read.size: 3
thread_pool.system_read.queue_size: 1000

适用场景:

  • 资源受限环境
  • 系统操作较少
  • 保护系统资源

默认值计算 #

half_processors_max_5 = min(allocatedProcessors / 2, 5)

示例:
  CPU 核心数 = 4
  half_processors_max_5 = min(4/2, 5) = 2

  CPU 核心数 = 8
  half_processors_max_5 = min(8/2, 5) = 4

  CPU 核心数 = 16
  half_processors_max_5 = min(16/2, 5) = 5

  CPU 核心数 = 32
  half_processors_max_5 = min(32/2, 5) = 5

推荐设置建议 #

CPU 核心数推荐线程数推荐队列大小说明
421000-2000小型节点
842000中型节点
16+52000-4000大型节点

监控建议 #

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

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

与 system_write 的区别 #

特性system_readsystem_write
用途系统读取操作系统写入操作
默认线程数half_processors_max_5half_processors_max_5
默认队列大小20001000
操作类型非阻塞读取阻塞写入

注意事项 #

  1. 静态配置:修改需要重启节点
  2. 系统内部使用:此线程池用于系统内部操作
  3. 默认值受限:最大值为 5,即使 CPU 核心数很多
  4. 队列较大:默认 2000 的队列大小
  5. 通常不需要调整:大多数情况下使用默认值即可