当前位置: 首页 > article >正文

es重启后调大恢复并发参数,加速分片分配

通过执行 GET /_cluster/allocation/explain 查看当前索引分配详情

"deciders": [{
			"decider": "throttling",
			"decision": "THROTTLE",
			"explanation": "reached the limit of outgoing shard recoveries [2] on the node [6gauyszJRDKhUo7clOCNsw] which holds the primary, cluster setting [cluster.routing.allocation.node_concurrent_outgoing_recoveries=2] (can also be set via [cluster.routing.allocation.node_concurrent_recoveries])"
		}]

如果 decider 中返回 “throttling” 时,通常表示该节点恢复并发达到上限,如果集群资源利用率比较低的话,可以适当调大恢复并发参数,加速分片分配。如果当前集群资源利用率比较高建议适当调小。

cluster.routing.allocation.node_initial_primaries_recoveries : 2,初始化主分片的数量

cluster.routing.allocation.cluster_concurrent_rebalance : 2,分片balance的数量

cluster.routing.allocation.node_concurrent_recoveries : 2,控制节点同时进行恢复和分配操作的数量

cluster.routing.allocation.node_concurrent_incoming_recoveries : 2,控制节点并发进行恢复操作的数量

cluster.routing.allocation.node_concurrent_outgoing_recoveries : 2,控制节点并发进行分配操作的数量

indices.recovery.max_bytes_per_sec : 40mb,带宽大小

解决方案

按需调整对应参数,初始化分片数量建议调大,balance数量一般不建议调大,否则会影响业务读写。其余并发恢复或分配数量一般建议调整为小于或等于单节点cpu核数。

Persistent设置:这些设置是持久的,一旦设置后将一直保持有效,即使集群重启也会保留。这意味着persistent设置会被写入到集群的配置文件中,并且会在每次启动时自动加载。

Transient设置:这些设置是临时的,它们在集群重启后不会保留。这意味着transient设置只在当前运行的集群会话中有效,并且在集群重启后会被重置为默认值。

如果只需临时修改并发的话,可以只修改transient

PUT _cluster/settings
{
    "persistent":{
        "cluster.routing.allocation.node_concurrent_recoveries":8, 
        "cluster.routing.allocation.node_concurrent_incoming_recoveries":8,
        "cluster.routing.allocation.node_initial_primaries_recoveries":8,
        "cluster.routing.allocation.node_concurrent_outgoing_recoveries":8,
        "cluster.routing.allocation.cluster_concurrent_rebalance":8,
        "indices.recovery.max_bytes_per_sec":"60mb"
    },
        "transient":{
        "cluster.routing.allocation.node_concurrent_recoveries":8,
        "cluster.routing.allocation.node_concurrent_incoming_recoveries":8,
        "cluster.routing.allocation.node_initial_primaries_recoveries":8,
        "cluster.routing.allocation.node_concurrent_outgoing_recoveries":8,
        "cluster.routing.allocation.cluster_concurrent_rebalance":8,
        "indices.recovery.max_bytes_per_sec":"60mb"
    }
}

http://www.kler.cn/news/284780.html

相关文章:

  • 美团8/31—24年秋招【技术】第四场
  • 算法的空间复杂度
  • 【Redis】持久化——rdb机制
  • 零基础国产GD32单片机编程入门(九)低功耗模式实战含源码
  • 掌握CHECK约束:确保数据准确性的关键技巧
  • 【网络】HTTPS——HTTP的安全版本
  • GalaChain 全面剖析:为 Web3 游戏和娱乐而生的创新区块链
  • 速盾:Nginx使用CDN之后获取真实的用户IP
  • 机器学习--核心要点总结
  • k8s 存储
  • Spark自定义函数例子
  • 初识Vue.js:从零开始构建你的第一个Vue项目
  • 【C++ 第十八章】C++11 新增语法(3)
  • 工业智能物联网关,智慧医疗生态圈的创新驱动
  • 【Python机器学习】NLP词中的数学——词袋
  • 学习之MySQL约束
  • 【60天备战软考高级系统架构设计师——第四天:需求获取与初步分析】
  • discuz Upload Failed.
  • 文件.硬盘.IO
  • 智能合约漏洞(三)
  • arm 模式栈初始化
  • Flask-RESTFul 之 RESTFul 的响应处理 之定制返回的 json格式
  • 【网络安全】XML-RPC PHP WordPress漏洞
  • 记一次学习--webshell绕过
  • C# 传值参数
  • Python 算法交易实验85 QTV200日常推进-钳制指标与交易量
  • 量化交易backtrader实践(四)_评价统计篇(4)_多个回测的评价列表
  • Python 如何进行密码学操作(cryptography模块)
  • 通帆科技“液氢微型发电站”:点亮氢能产业新征程
  • Mysql的InnoDB存储引擎