elasticsearch - 如何监控fielddata与节点RAM

时间:2015-11-17 19:30:50

标签: elasticsearch

elasticsearch 1.7.2 on CentOS,8GB RAM,多节点集群。

我们正在审核:https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html

并提出几个问题。

1)除了断路器之外,我们如何看到接近最大的fielddata RAM? (/_stats/fielddata?fields=*中的统计信息,如memory_size,不显示'available_memory')

2)当我们运行/_stats/fielddata?fields=*时,我们会看到"primaries""total",这很好。但是总数是多少?它似乎是memory_size * number of nodes,(但这对我们没有意义)。

3)我们从具有4GB RAM的节点迁移到具有8GB RAM的节点,但我们觉得fielddata的可用RAM(现货有弹性搜索.yml)没有加倍。这是一个公平的结论吗?

我们要监控的重要事项是:我们距离最大RAM有多近......但我们看不到要测量的内容。

1 个答案:

答案 0 :(得分:3)

首先,你不是最大化RAM,而是HEAP。 ES正在使用堆内存(来自JVM),还使用RAM(作为文件数据缓存)。

要查看节点使用了多少堆,请使用以下命令:GET /_nodes/stats/jvm,它将输出类似

的内容
     "jvm": {
        "timestamp": 1447790529519,
        "uptime_in_millis": 84853,
        "mem": {
           "heap_used_in_bytes": 311374768,
           "heap_used_percent": 14,
           "heap_committed_in_bytes": 2112618496,

您需要100 * heap_used_in_bytes / heap_committed_in_bytes并产生一定比例的使用量。或者只是怀疑heap_used_percent。对于实际的RAM使用情况,请使用您的操作系统报告或GET /_nodes/stats/os

对于fielddata,您可以使用GET /_nodes/stats/indices/fielddata

获取每个节点的统计信息