Q:有两个人掉到陷阱里了,死的人叫死人,活人叫什么?

一次集群负载过高的疑惑

Elasticsearch | 作者 code4j | 发布于2019年09月25日 | 阅读数:1968

版本:5.4.1
 
背景: 集群26个节点,175个索引,都是同一个业务,写流量只走最新的索引,读会走整个索引群
 
问题:有一天下午集群负载变得非常高,时间大概维持了十来分钟,导致集群很多操作都超时了。观察了下监控,当时的写是正常流量,读qps和其他时间一样也没有太大的波动。但是有一个指标比较奇怪,fielddata cache 变得比之前多很多,以前这一项指标基本就是0,但是出问题的那段时间一直维持在几个G。
 
出现问题的时候 search队列溢出:

企业微信截图_dd38dfd0-34ed-4abf-bc5c-082c5284f749.png

 
当时的负载如下

企业微信截图_f878bf1b-0c54-4415-a23d-18a34da3766f.png

 
 
搜索的qps和写入流量和之前是差不多的。  唯一和之前不一样的指标是field data cache
 

企业微信截图_5b3f0d28-fb45-4baa-a66d-19e407e3547f.png

 
原先这一列都是一条直线维持在0左右,超时的那段时间fielddata有一些波动
 
主要是搜索和排序的场景,没有聚合。
 
有没有遇到同类情况的同学
已邀请:

bellengao - 博客: https://www.jianshu.com/u/e0088e3e2127

赞同来自:

GET _cat/fielddata 看看具体是哪个字段的fielddata比较大,一般是业务的查询引起的

locatelli

赞同来自:

降低fielddata circuit breaker (indices.breaker.fielddata.limit),比如说到30%,然后看到底是哪个查询引起的问题。
也可以设置“indices.fielddata.cache.size”, 默认是没有限制的。

要回复问题请先登录注册