ES集群节点性能不均引起的一次生产事故

ES集群节点性能不均引起的一次生产事故

背景

5月21日晚上6点再次收到es集群变了,查询变得很慢,已经严重影响到了线上请求响应,部分接口响应失败。近期已经出现多次进群变黄的现象

排查过程

  1. 登录grafana上看机器负载,观察机器负载情况,如下图所示mig-es2这台机器的cpu使用率很高,整台机器的负载都很高。因为业务中用到了很多es中的agg请求,理论上是确实很耗费cpu的在这里插入图片描述
  2. 登录对应的机器上查看了es的慢查询日志,发现故障的这个时间段上有很多响应时间非常长的请求,响应有高达2分钟的,这样的请求足以把机器拖垮了,连续几条这么大规模的查询估计把实例干崩
    在这里插入图片描述
  3. 再登录cerebro看节点状态,发现是确实是mig-es2(部署了2个实例)这台机器上的一个实例挂掉了,导致分片丢失,集群变黄影响到正常的业务了!还有一个非常重要的现象就是,整个索引有3/1的分片都分布在mig-es2这台机器上,每次请求来了3/1的压力都打在这台机器上

问题定位

1、es的agg语句过于复杂,需要耗费大量的cpu资源
2、es分片不均匀,很多分片都集中分配在mig-es2机器上***
3、mig-es2和mig-es3是前段时间新加进去机器,两台机器均部署了2个es实例。这两台机器是老机器,虽然用上了ssd,但是cpu能力很弱并且部署2个实例,遇到了复杂的agg时根本应付不过来,导致超负荷了

解决方案

1、优化es的agg语句,禁止大规模数据agg,只允许小规模的复杂agg操作
2、利用cerebro手动重新分配分片,平衡机器负载压力***
3、mig-es2和mig-es3两台老机器各去掉一个实例,每台机器只部署一个实例
4、做一层根据机器性能来分配请求的负载均衡机制

结论

es节点的性能应该做到均衡点(注意木桶效应),避免个别节点太弱挂掉,导致整个es变黄影响了正常的服务

以上均为本人的记录,文中可能有对说得不对的地方,欢迎大佬们指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值