elasticsearch线程池配置

news/2025/1/18 21:36:27/

在Elasticsearch中,默认的线程池配置如下:

search线程池

  • 用途:用于处理搜索请求。

  • 特点:

    • 类型为fixed,即固定大小的线程池。

    • 线程数根据分配给Elasticsearch的处理器数量动态计算,以确保搜索请求能够并行处理,提高搜索性能。

    • 队列大小限制了等待执行的搜索任务数量,防止过多任务积压导致系统过载。

  • 线程数:int((# of allocated processors * 3) / 2) + 1

  • 队列大小:1000

search_throttled线程池

  • 用途:用于处理被限制的搜索请求,如慢查询或需要降低优先级的查询。

  • 特点:

    • 类型为fixed

    • 线程数固定为1,意味着这些请求会被顺序执行,避免对系统资源造成过大压力。

    • 队列大小限制了等待执行的被限制搜索任务数量。

  • 线程数:1

  • 队列大小:100

search_coordination线程池

  • 用途:用于协调跨多个分片的搜索请求。

  • 特点:

    • 类型为fixed

    • 线程数根据处理器数量的一半计算,以平衡协调任务的负载。

    • 队列大小限制了等待执行的协调任务数量。

  • 线程数:(# of allocated processors) / 2

  • 队列大小:1000

get线程池

  • 用途:用于处理获取文档的请求。

  • 特点:

    • 类型为fixed

    • 线程数和队列大小与search线程池类似,确保获取操作能够高效并行执行。

  • 线程数:int((# of allocated processors * 3) / 2) + 1

  • 队列大小:1000

write线程池

  • 用途:用于处理写入操作,如索引、删除和更新文档。

  • 特点:

    • 类型为fixed

    • 线程数与处理器数量相等,确保写入操作能够充分利用多核处理器的性能。

    • 队列大小较大,允许更多的写入任务排队等待执行。

  • 线程数:# of allocated processors

  • 队列大小:10000

  • 最大线程数:1 + (# of allocated processors)

snapshot线程池

  • 用途:用于处理快照创建和恢复操作。

  • 特点:

    • 类型为scaling,即可伸缩的线程池。

    • 最小线程数为1,最大线程数根据节点的堆内存大小和处理器数量动态调整,以优化快照操作的性能。

  • 最小线程数:1

  • 最大线程数:在节点的堆内存至少为750MB时,默认为10;在节点的堆内存小于750MB时,默认为min(5, (# of allocated processors) / 2)

  • 线程保持时间:5m

snapshot_meta线程池

  • 用途:用于处理快照元数据相关操作。

  • 特点:

    • 类型为scaling

    • 最小线程数为1,最大线程数根据处理器数量动态调整,确保元数据操作能够高效执行。

  • 最小线程数:1

  • 最大线程数:min(50, (# of allocated processors * 3))

  • 线程保持时间:5m

warmer线程池

  • 用途:用于执行索引缓存预热操作。

  • 特点:

    • 类型为scaling

    • 最小线程数为1,最大线程数根据处理器数量动态调整,以优化缓存预热的性能。

  • 最小线程数:1

  • 最大线程数:min(5, (# of allocated processors) / 2)

  • 线程保持时间:5m

refresh线程池

  • 用途:用于执行索引刷新操作,将内存中的变更写入磁盘。

  • 特点:

    • 类型为scaling

    • 最小线程数为1,最大线程数根据处理器数量动态调整,确保刷新操作能够及时完成。

  • 最小线程数:1

  • 最大线程数:min(10, (# of allocated processors) / 2)

  • 线程保持时间:5m

force_merge线程池

  • 用途:用于执行索引段合并操作,以优化存储和查询性能。

  • 特点:

    • 类型为fixed

    • 线程数根据处理器数量的1/8计算,确保合并操作能够并行执行,但不会占用过多资源。

  • 线程数:max(1, (# of allocated processors) / 8)

  • 队列大小:无限制

management线程池

  • 用途:用于执行集群管理和节点内部的管理任务。

  • 特点:

    • 类型为scaling

    • 最小线程数为1,最大线程数为5,确保管理任务能够及时响应,同时避免对系统资源造成过大压力。

  • 最小线程数:1

  • 最大线程数:5

  • 线程保持时间:5m

index线程池

  • 用途:用于处理索引相关的操作,如文档的索引、删除和更新

  • 特点:

    • 类型为fixed

  • 线程数:min(5 * (# of allocated processors), 50)。线程数是分配给Elasticsearch的处理器数量的5倍,但最大不超过50

  • 队列大小:默认为1000

配置方法


elasticsearch.yml中配置线程池
thread_pool: search: size: 30 queue_size: 1000 write: size: 20 queue_size: 500在这个例子中,search线程池的线程数被设置为30,队列大小为1000;write线程池的线程数被设置为20,队列大小为500。


修改elasticsearch.yml文件中的线程池配置后,需要重启Elasticsearch服务才能使配置生效。

动态配置


Elasticsearch也支持通过API动态地修改线程池配置,而不需要重启服务。例如,可以使用以下API来动态修改线程池配置:

curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient": { "threadpool.index.type": "fixed", "threadpool.index.size": 100, "threadpool.index.queue_size": 500 } }'

这个API会将index线程池的类型设置为fixed,线程数设置为100,队列大小设置为500。


http://www.ppmy.cn/news/1564239.html

相关文章

matlab中的griddata函数

在Matlab中,griddata函数用于对二维或三维散点数据进行插值。griddata函数支持多种插值方法,其中包括natural方法。以下是关于griddata函数与natural插值方法的关系的详细说明: griddata函数概述 griddata函数主要用于将不规则分布的数据点…

大模型微调介绍-Prompt-Tuning

提示微调入门 NLP四范式 第一范式 基于「传统机器学习模型」的范式,如TF-IDF特征朴素贝叶斯等机器算法. 第二范式 基于「深度学习模型」的范式,如word2vec特征LSTM等深度学习算法,相比于第一范式,模型准确有所提高&#xff0c…

数据结构-栈队列OJ题

文章目录 一、有效的括号二、用队列实现栈三、用栈实现队列四、设计循环队列 一、有效的括号 (链接:ValidParentheses) 这道题用栈这种数据结构解决最好,因为栈有后进先出的性质。简单分析一下这道题:所给字符串不是空的也就是一定至少存在一…

华为手机改ip地址能改定位吗

‌在数字化时代,手机不仅是通讯工具,更是我们日常生活的得力助手。从地图导航到社交媒体,手机定位服务无处不在。然而,有时我们可能出于隐私保护或其他原因,希望更改手机的IP地址,并好奇这是否能同时改变手…

Spring Boot中的自动配置原理是什么

Spring Boot 自动配置原理 Spring Boot 的自动配置机制基于 条件化配置,通过 EnableAutoConfiguration 注解来启用。自动配置的核心原理是 基于类路径和环境条件来推断所需要的配置,Spring Boot 会根据项目中引入的依赖和当前环境来自动装配相关的配置项…

【PCL】Segmentation 模块—— 平面模型分割(Plane model segmentation)

1、简介 PCL(Point Cloud Library)中的平面模型分割(Plane Model Segmentation)是一种从点云数据中提取平面结构的方法。它通过识别点云中符合平面模型的点集,将场景中的平面区域分割出来。 1.1 主要步骤 选择模型&…

【2025 Rust学习 --- 18 IO操作和网络】

输入与输出 Rust 标准库中的输入和输出的特性是围绕 3 个特型组织的,即 Read、 BufRead 和 Write。 实现了 Read 的值具有面向字节的输入方法。它们叫作读取器。实现了 BufRead 的值是缓冲读取器。它是 Read的子特型 ,外加读取文本行等方法。实现了 Wr…

Java连接TDengine和MySQL双数据源

git文件地址:项目首页 - SpringBoot连接TDengine和MySQL双数据源:SpringBoot连接TDengine和MySQL双数据源 - GitCode 1、yml配置 spring:datasource:druid:mysql:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/testusername: roo…