elasticsearch:monitor fielddata - 警报阈值应该是多少?并监控ES

时间:2015-11-16 18:17:55

标签: elasticsearch

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)?

或____?

1 个答案:

答案 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。

还有什么要监控:

  • CPU
  • 磁盘空间
  • 系统负载
  • 应显示saw-tooth pattern
  • 的JVM堆使用情况
  • fielddata evictions
  • 过滤缓存清除
  • JVM旧GC时间

此外,有关监控内容​​的详细信息可以找到here