数栈是云原生—站式数据中台PaaS,咱们在github和gitee上有一个乏味的开源我的项目:FlinkX,FlinkX是一个基于Flink的批流对立的数据同步工具,既能够采集动态的数据,也能够采集实时变动的数据,是全域、异构、批流一体的数据同步引擎。大家喜爱的话请给咱们点个star!star!star!

github开源我的项目:https://github.com/DTStack/fl...

gitee开源我的项目:https://gitee.com/dtstack_dev...

一、客户背景

客户应用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聚合查问提早减小,业务数据查问性能晋升,速度达到百毫秒级别

四、写在最初

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