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

配置项概述 #

processors 配置项设置节点可用的处理器(CPU 核心)线程数,影响系统的并发处理能力。

配置项默认值说明
processors自动检测处理器数量

配置说明 #

processors #

配置项作用:设置节点可用的处理器线程数。此配置影响线程池大小、并发处理能力等。

默认值:自动检测(通常等于 CPU 核心数)

配置类型:静态配置

取值范围1 ~ 正整数

配置格式

# 默认配置:自动检测
processors: 48

# 手动指定
processors: 16

# 限制处理器数
processors: 8

工作原理 #

自动检测 #

┌─────────────────────────────────────────────────────────────────┐
│                    处理器自动检测                                  │
└─────────────────────────────────────────────────────────────────┘

启动时检测
    │
    ├── 获取 CPU 核心数
    │
    ├── 设置 processors = CPU 核心数
    │
    └── 影响以下组件:
        ├── 线程池大小
        ├── 并发任务数
        └── 索引/搜索性能

使用场景 #

自动检测(默认) #

# 系统自动检测
processors: 48  # 48 核 CPU

适用场景

  • 物理机部署
  • 虚拟机完整资源
  • CPU 资源充足

手动指定(容器环境) #

# 容器环境:根据容器配额设置
processors: 4

适用场景

  • Docker/Kubernetes 容器
  • CPU 限制环境
  • 共享主机资源

限制处理器数 #

# 限制使用的处理器数
processors: 8

适用场景

  • 资源受限环境
  • 多实例部署
  • 非专用节点

对线程池的影响 #

通用线程池 #

thread_pool.generic.max = processors * 2
thread_pool.generic.core = processors / 2

写入线程池 #

thread_pool.write.size = processors

搜索线程池 #

thread_pool.search.size = (processors / 3) + 1

推荐配置 #

物理机环境 #

# 使用自动检测值
# processors: 自动检测

容器环境 #

# 根据容器配额设置
processors: 4

资源受限环境 #

# 限制处理器使用
processors: 2

高性能环境 #

# 使用所有可用核心
processors: 48

容器环境配置 #

Docker #

# docker-compose.yml
services:
  easysearch:
    image: infinilabs/easysearch:latest
    environment:
      - ES_JAVA_OPTS="-Xms4g -Xmx4g"
    deploy:
      resources:
        limits:
          cpus: '4'
    # easysearch.yml
    processors: 4

Kubernetes #

# Deployment
resources:
  limits:
    cpu: "4"
  requests:
    cpu: "2"

# easysearch.yml
processors: 4

监控和验证 #

查看处理器配置 #

# 查看节点信息
GET _nodes/stats

检查线程池 #

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

注意事项 #

  1. 重启生效:修改此配置需要重启节点
  2. 容器环境:容器中需要手动设置
  3. 过度订阅:不要设置超过实际可用的 CPU 核心数
  4. 线程池:影响多个线程池的大小
  5. 性能调优:根据实际负载调整