CentOS上的Elasticsearch 1.7.2
我们知道,elasticsearch建议配置为操作系统的%50 RAM和弹性搜索的%50。
所以在16GB系统上,弹性有8GB。
到目前为止很好。
我们也了解通过在映射中使用doc_values标记可以大大减少ES工作集。我们现在正在这样做。
我们也理解我们应该从elasticsearch监控fielddata元素的大小(因为当我们在系统上消耗内存时,我们遭受了灾难性的数据丢失)。
也没关系。
但我们在寻找什么?
1)fielddata是我们唯一需要监控的东西(群集健康除外)吗?
2)我们应该监控什么以确保我们不会耗尽硬件空间?
3)和RE fielddata:我们是否正在寻找fielddata = 7.5GB(例如我们即将最大限度地利用RAM)?
或____?
答案 0 :(得分:0)
为什么不考虑使用doc_values
?通过将fielddata切换为doc_values as default for not_analyzed string fields, dates, numbers,ES 2.0向前迈进了一步。
关于您的具体问题,我首先要对fielddata进行限制。默认情况下,Fielddata是无界的。这意味着它可以增长,直到fielddata断路器将阻止任何超过限制的查询运行。这意味着,只要您的节点达到断路器限制,就不会在内存中放置其他字段数据,并且将拒绝需要 new fielddata的查询。为防止这种情况发生,您需要将indices.fielddata.cache.size
设置为小于的值,而不是断路器限制。
设置此项将允许逐出字段数据。 这不是一个理想的情况因为fielddata的加载费用很高。 理想情况,您需要足够的内存来保存必要的字段数据而不会被驱逐。
The circuit breaker limit has a value of 60% of the heap as the default value。例如,将indices.fielddata.cache.size
设置为50%
,查看群集的行为方式,并根据需要重新调整。但是,如果你使用doc_values
正确设置,我认为你现在不应该过多担心fielddata。
还有什么要监控:
此外,有关监控内容的详细信息可以找到here。