kibana 查询索引报 circuit_breaking_exception

elasticsearch版本是7.7.1,kibana版本也是7.7.1

这个集群新建运行了20多天,也接入了部分业务。接入后通过kibana的discover查询业务日志都是正常的。今天接入了一个新业务,新业务设置了索引后通过kibana查询其日志时很久都没返回结果,还导致kibana挂了。而查询其它之前接入的业务是正常的,基本一秒左右出结果。我开了kibana的debug模式,通过日志发现在查询新业务时报错,报错如下:

“type”:”log”,”@timestamp”:”2020-07-07T14:31:17Z”,”tags”:[“error”,”plugins”,”taskManager”,”taskManager”],”pid”:17267,”message”:”Failed to poll for work: [circuit_breaking_exception] [parent] Data too large, data for [] would be [32930241680/30.6gb], which is larger than the limit of [32307045990/30gb], real usage: [32930235136/30.6gb], new bytes reserved: [6544/6.3kb], usages [request=0/0b, fielddata=0/0b, in_flight_requests=6544/6.3kb, accounting=0/0b], with { bytes_wanted=32930241680 & bytes_limit=32307045990 & durability="TRANSIENT" }…

这个集群使用elasticsearch默认配置。1个主1副本,没切片。新业务的索引大小是21g左右。 但其它业务的日志索引是58g的也能在1秒左右返回结果。
我设置了indices.breaker.total.limit为40%, 80%,95%都不行。
也执行过
shell curl -XPOST -H "Content-Type:application/json" 'http://XXX.XXX.XXX.XX:9200/_cache/clear' -d '{ "fielddata": "true" }'都没效果。

请问各位,你们有遇到过这种情况吗?

讨论数量: 4

从错误反馈上来看,是因为 in_flight_requests 这个参数导致的,应该和 fielddata 没有关系,可以从这方面入手看一下

3年前 评论

@DRose 谢谢你的指引。 发现原因了,本来这个索引是nginx的日志,但被错误的识别为java日志。在logstash层识别为java并过滤并重新组装了。现在改回来nginx类型后就正常了。 但是为什么成java类型后在kibana查询会出现问题,这个我还得从logstash开debug看下组装成什么样子才知道问题出在哪了。

3年前 评论
DRose 3年前
gtuiw (作者) (楼主) 3年前

最后你这边最后 这个问题是怎么解决的啦

3年前 评论
gtuiw (楼主) 3年前

@gtuiw logstash吞吐有做优化吗?做做调整效果绝对惊艳

3年前 评论
gtuiw (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!