客户背景

客户使用ES来进行数据存储、快速查询业务订单记录,但是经常会出现业务高峰期ES集群的cpu负载、内存使用均较高,查询延迟大,导致前端业务访问出现大量超时的情况,极大影响其客户使用体验。

部分监控如下图:

1) 集群架构如下:

集群节点配置:8数据节点(16C64G);3主节点(8C32G)

2) 集群存在问题分析

  • 业务层面

与客户业务人员沟通,业务处理中有几个聚合查询会占用较多的内存,且这类查询对准确性要求较高,需精确统计所有匹配结果。

  • 架构层面

存在4-5T的单个较大索引,该索引字段多达2000+,分片大小普遍60G+,最高达到130G+,是制约查询性能的一个较大瓶颈,另外集群在业务高峰期还会出现经常的fullgc,这是出现访问超时的直接原因。如图:

Elasticsearch集群优化

与客户开发人员沟通了解集群在业务上存在的问题,结合我们在ES这块的服务经验,从语句参数、索引、架构等多个角度给客户提出调优建议。

1) 语句、参数调优

客户已提供4个慢查询语句,语句中聚合查询使用"execution_hint": "map",该执行策略会把命中的记录都捞回内存中,一旦查询结果较大就会占用大量内存。建议使用terminator_after,此方法可以控制查询结果数量,另外将不参与聚合、排序的字段设置为doc_values:false, 节省磁盘空间提升索引速度。

2) 集群架构优化:

在原有集群基础上添加协调节点或者扩容数据节点:

  • 添加协调节点:优点是可以减轻数据节点压力,变更较为容易,缓解fullgc频繁出现的问题;

  • 扩容数据节点:优点是可以减轻当前数据节点压力,也可以减小分片大小;但是增加索引分片需要重新创建索引,重新导入数据,且当前节点存储压力不大,同时增加数据节点对存储空间有一定的浪费。

结合客户业务特性,我们推荐客户使用添加协调节点的方式对集群架构进行优化。

3) 集群索引优化:

可以对集群进行索引拆分和使用别名两方面进行优化调整。

  • 拆分索引:对索引字段进行拆分并确认大小,可以解决当前索引分片过大的问题,提升查询性能。

  • 使用别名:根据日期定期创建新的索引(建议按月创建索引),根据业务对统一查询的索引创建统一别名,该方法可以彻底解决当前索引分片过大问题,优化查询性能。

集群优化效果

集群优化后整体性能有明显提升:

a. ES集群负载、内存较为平稳,业务高峰期不会有较大波动;

b. ES集群FullGC出现频次极大降低,降低对业务的影响;

c. ES聚合查询延迟减小,业务数据查询性能提升,速度达到百毫秒级别;

写在最后

袋鼠云通过数据集成优化、任务调度优化、代码优化、全链路数据质量保障、故障紧急处理、大数据平台运维,为客户提供大数据系统运维保障服务。

更多解决方案详情查看云掣官网https://www.dtstack.com/dtsmart/

某物流客户Elasticsearch集群性能优化案例的更多相关文章

  1. ELK 性能(4) — 大规模 Elasticsearch 集群性能的最佳实践

    ELK 性能(4) - 大规模 Elasticsearch 集群性能的最佳实践 介绍 集群规模 集群数:6 整体集群规模: 300 Elasticsearch 实例 141 物理服务器 4200 CP ...

  2. mongodb集群性能优化

    mongodb集群性能优化 在前面两篇文章,我们介绍了如何去搭建mongodb集群,这篇文章我们将介绍如何去优化mongodb的各项配置,以达到最优的效果. 警告 不做任何的优化,集群搭建完成之后,使 ...

  3. 腾讯云Elasticsearch集群规划及性能优化实践

    ​一.引言 随着腾讯云 Elasticsearch 云产品功能越来越丰富,ES 用户越来越多,云上的集群规模也越来越大.我们在日常运维工作中也经常会遇到一些由于前期集群规划不到位,导致后期业务增长集群 ...

  4. elasticsearch集群介绍及优化【转】

    elasticsearch用于构建高可用和可扩展的系统.扩展的方式可以是购买更好的服务器(纵向扩展)或者购买更多的服务器(横向扩展),Elasticsearch能从更强大的硬件中获得更好的性能,但是纵 ...

  5. ELK 性能(3) — 在 Docker 上运行高性能容错的 Elasticsearch 集群

    ELK 性能(3) - 在 Docker 上运行高性能容错的 Elasticsearch 集群 介绍 在 Docker 上运行高性能容错的 Elasticsearch 集群 内容 通常熟悉的开发流程是 ...

  6. Elasticsearch 集群优化-尽可能全面详细

    Elasticsearch 集群优化-转载参考1 基本配置 基本配置,5台配置为 24C 125G 17T 的主机,每台主机上搭建了一个elasticsearch节点. 采用的elasticsearc ...

  7. ELK 性能(2) — 如何在大业务量下保持 Elasticsearch 集群的稳定

    ELK 性能(2) - 如何在大业务量下保持 Elasticsearch 集群的稳定 介绍 如何在大业务量下保持 Elasticsearch 集群的稳定? 内容 当我们使用 Elasticsearch ...

  8. ElasticSearch 集群 & 数据备份 & 优化

    ElasticSearch 集群相关概念 ES 集群颜色状态 ①. - 红色:数据都不完整 ②. - 黄色:数据完整,但是副本有问题 ③. - 绿色:数据和副本全都没有问题 ES 集群节点类型 ①. ...

  9. 400+节点的 Elasticsearch 集群运维

    本文首发于InfoQ https://www.infoq.cn/article/1sm0Mq5LyY_021HGuXer 作者:Anton Hägerstrand 翻译:杨振涛 目录: 数据量 版本 ...

  10. Elasticsearch集群 管理

    第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...

随机推荐

  1. vue2实现饼图Pie组件封装

    实现如下效果: 效果展示:https://code.juejin.cn/pen/7226656439941955644 如果不会请移步到官网的栗子,请点击查看 直接给大家上代码: 整体代码片段 1 & ...

  2. Berkeley

    2019年Berkeley预测Serverless将取代Serverful计算,成为云计算的计算新范式.Serverless为应用程序开发提供了一种全新的系统架构,其凭借着弹性伸缩省事省心,按需付费更 ...

  3. 当scroll-view水平滚动,内容溢出时,文本会自动竖向排列问题

    当scroll-view水平滚动,内容溢出时,文本会自动竖向排列 解决方法:thite-space:nowrap:规定段落中的文本不进行换行

  4. 欧拉序求LCA

    使用欧拉序 st 表 O(1) 求 LCA 欧拉序 st 表求 LCA 一开始是从某篇题解里看到的,后来百度了一下就会了( 这是一种预处理 O(nlogn) ,查询 O(1) 的优秀算法. 什么是欧拉 ...

  5. 开发一个现代化的.NetCore控制台程序,包含依赖注入/配置/日志等要素

    前言 最近需要开发小工具的场景有点多,上次我用 go 语言开发了一个 hive 导出工具,体验还不错,只是 go 语言的语法实在是喜欢不起来,这次继续试试用 C# 来开发小工具. 这次小工具的功能很简 ...

  6. .NET6中的await原理浅析

    前言 看过不少关于 await 的原理的文章,也知道背后是编译器给转成了状态机实现的,但是具体是怎么完成的,回调又是如何衔接的,一直都没有搞清楚,这次下定决心把源码自己跑了下,终于豁然开朗了 本文的演 ...

  7. 从一道题来看看golang中的slice作为参数时的现象

    1.题目 最近看群友在群里问一道关于golang中slice的题,题目如下: package main import "fmt" func main() { k := []int{ ...

  8. Avalonia 实现跨平台的IM即时通讯、语音视频通话(源码,支持信创国产OS,统信、银河麒麟)

    在 Avalonia 如火如荼的现在,之前使用CPF实现的简单IM,非常有必要基于 Avalonia 来实现了.Avalonia 在跨平台上的表现非常出色,对信创国产操作系统(像银河麒麟.统信UOS. ...

  9. 聊聊分布式 SQL 数据库Doris(九)

    优化器的作用是优化查询语句的执行效率,它通过评估不同的执行计划并选择最优的执行计划来实现这一目标. CBO: 一种基于成本的优化器,它通过评估不同查询执行计划的成本来选择最优的执行计划.CBO会根据数 ...

  10. Excel 条件定位

    查找定位 可以将所有空单元的值填上 方法:先使用定位条件选择区域中空单元格,输入100,按组合键Ctrl+Enter 仅复制分类汇总结果 先将数据进行组合 数据 -> 组合 如果直接复制,会把所 ...