在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

【求助】ES集群大量数据存储问题

Elasticsearch | 作者 xiaoke | 发布于2019年05月05日 | 阅读数:7848

ES_VERSION:6.5.1
 现在的ES集群做了冷热分离,冷节点有5台node组成,每个节点jvm分配为31GB,期望是能存最近30天的数据,但是现在存了14天的数据就会出现一个报错,导致节点数据无法写入!报错如下

data_too_large.png

我现在能分析的是:
1.报错是因为CircuitBreakingException熔断了。
2.[parent] Data too large, data for [<transport_request>] would be [23221093544/21.6gb], which is larger than the limit of [23220833484/21.6gb], usages [request=2850816/2.7mb, fielddata=114700/112kb, in_flight_requests=254410/248.4kb, accounting=23217873618/21.6gb]
3.下图能看到parent的Limit的限制为21.6Gb,这是31GB Jvm的70%。

parent.png

 
4,从图中也能也能看出限制为21.6GB,现在用了20.1GB了!!!
 
问题:
1.如何处理问题?比如把70%的限制调整为80%,虽然知道不会解决问题?但是也想知道如何调整此限制!
2.也想知道breakers中parent代表的是何含义?
已邀请:

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自: rochy laoyang360 sailershen

又有新的进展,其实是accounting用了太多了内存,因为accounting可以使用100%的jvm内存,但是parent默认是限制可以使用70%的内存,所以当accounting使用了超过了70%,就触发了parent级别的熔断。但是本质上还是accounting使用了太多内存!

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自: sailershen

额。。。找到限制了
https://www.elastic.co/guide/e ... .html

Parent circuit breakeredit

The parent-level breaker can be configured with the following setting:

indices.breaker.total.limit
Starting limit for overall parent breaker, defaults to 70% of JVM heap.

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自:

现在知道parent限制在70%,也知道了如何调整,但是请问parent这个代表的具体是啥意思?为何占用这么大?

zqc0512 - andy zhou

赞同来自:

你cache没有清理吧。清清cache试试。
有可能是版本BUG。

xiongge.club - www.xiongge.club

赞同来自:

请问你是如何解决的?

要回复问题请先登录注册