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

jvm heap使用率超过80%

Elasticsearch | 作者 lingerchouzi | 发布于2017年12月21日 | 阅读数:9444

今天集群有一台机器的heap使用率一直超过80%(只触发了一次old GC),看了之前wood叔的帖子: [url=https://elasticsearch.cn/article/361]https://elasticsearch.cn/article/361​[/url] ,
照着研究了下:并且复现了这个,是因为大量的父子查询导致的缓存,但是我的query cache没有设置,默认10%。最多也就1G的缓存,但是这里的size达到了6个多G。不知道为什么。
1.png

 
已邀请:

kennywu76 - Wood

赞同来自: shitangjiejie medcl

这是一个已知问题,和父子查询过程中产生的global ordinals有关。 GlobalOrdinalsQuery对象可能会被cache起来,虽然这些对象可能很小,但是他们引用的global ordinals实例可能消耗的内存很多。 不幸的是,global ordinals的内存消耗是不会计算在query cache的消耗里的。在有大量的query被缓存以后,导致大量的global ordinals实例被引用无法被释放。
 
目前规避这个问题的办法是设置indices.queries.cache.count, 减少query cache的count(默认值是10000)。 
 
Github上类似问题参考: https://github.com/elastic/ela ... 26587
 

要回复问题请先登录注册