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有多近......但我们看不到要测量的内容。
答案 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