【最佳实践】巡检项:Elasticsearch Service(ES)集群热点现象
2023-06-13 09:11:18 时间
报错现象
集群中的某些节点的资源使用率远高于其他节点。
通过监控观察:
1分钟负载的最大值和和平均值相差较大
通过 cerebro 观察:
部分节点负载情况明显高于其他节点
报错分析
热点主要是以下几种原因造成:
1、分片在节点之间分布不均匀,导致业务请求 ES 集群时负载不均;
2、用户侧业务存在热点,频繁请求某些数据分片造成热点;
3、索引未配置副本,导致查询请求聚集于分片所处的节点。
注:在分片分布均匀的情况下,如果查询请求中指定了routing参数,也会导致查询请求聚集于某一部分分片,造成请求不均匀。
解决方案
临时解决方案(以下操作均建议在有副本的情况下使用):
1、节点监控中找到负载最高的节点,重启高负载节点;
2、登录 cerebro 将高负载节点上的副本分片迁移至低负载节点。
长期优化建议:
1、单个索引的主分片与副本分片数之和是集群数据节点的整数倍;
2、分片容量,主要分为写入和查询两个场景
【写多读少场景】索引单分片10g~20g,多分片有利于写入。同时若对数据高可用性要求不高,可以不设置副本;
【读多写少场景】索引单分片20g~40g,尽量减少分片数,可以降低热点。当分片数过多时,就容易出现长尾子请求,即有可能部分子请求因节点异常或 Old GC、网络抖动等延迟响应,导致整个请求响应缓慢。另一方面,拆分过多的子请求无法提升数据节点请求吞吐,不能充分利用 CPU。在尽量减少主分片数的情况下,同时也可以适当增加副本数,从而提升查询吞吐;
3、在遵循单分片设计原则的前提下,预测出索引最终大小,并根据集群节点数设计索引分片数量,使分片尽量平均分布在各个节点。
相关文章
- ES只读模式修改
- ES 字符过滤器&令牌过滤器
- 2022最新ES面试题整理(Elasticsearch面试指南系列)「建议收藏」
- 04-Elasticsearch-ES集成IK分词器
- 11-Elasticsearch-logstash数据同步[Mysql->Logstash->Es]
- windows 安装Elasticsearch、实现数据的插入以及使用kibana工具进行监控es数据
- 动手体验 ES 8.4.x 实时监控 Java 应用运行状态
- ElasticSearch全文搜索引擎 -Spring Boot操作ES(SpringData概述、Spring Data Elasticsearch、基本操作、ElasticSearch操作文档)
- 【ES三周年】万字长文带你实战 Elasticsearch 搜索
- 【ES三周年】2 万字长文,带你深入理解 Elasticsearch
- IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
- 【ES三周年】Es进阶检索实战
- IOS – OpenGL ES 设置图像锐化 GPUImageSharpenFilter
- IOS – OpenGL ES 黑白马赛克效果 GPUImageMosaicFilter
- 【ES三周年】Elasticsearch Service 实践经验分享
- 【ES三周年】elasticsearch目录及配置参数说明
- ES 部署常见问题
- 【ES三周年】GPT引领学习之旅:弥补信息差,助力程序员高效掌握Elasticsearch(附实例)
- 【ES三周年】Elasticsearch新手向高手:GPT智能助手助你跃升技能巅峰
- 【ES三周年】Java与Elasticsearch实战:GPT助您实现数据安全和监控
- 【ES三周年】ES查询—海量数据搜索深度分页优化
- MySQL 数据同步到 Elasticsearch:实现数据无缝转移(mysql同步到es)
- Oracle数据实时全量同步至Elasticsearch(oracle全量同步es)
- 使用ES导入Oracle数据库一招制胜(es 导入 Oracle)
- ES与Oracle数据同步技术研究(es oracle 同步)
- 排行榜的新挑战Elasticsearch与Redis的对比(排行榜es与redis)