I can set the breaker.fielddata limit with CURL, but the setup from config is not respected:
ES version: 1.6.0
In my node config
/etc/elasticsearch/elasticsearch.yml
indices.breaker.fielddata.limit: 60%
#indices.breaker.fielddata.limit: 60% # this should work, but is not
#indices.fielddata.breaker.limit: 60% # this is deprecated
indices.breaker.total.limit: 70%
indices.breaker.request.limit: 50%
indices.fielddata.cache.size: 60%
The fielddata limit is set to 60% (4.7g of 8g heap) in the config, but:
curl -XGET 'http://localhost:9200/_nodes/stats?pretty' |less
"breakers" : { "request" : { "limit_size_in_bytes" : 4277534720, "limit_size" : "3.9gb", "estimated_size_in_bytes" : 0, "estimated_size" : "0b", "overhead" : 1.0, "tripped" : 0 }, "fielddata" : { "limit_size_in_bytes" : 3422027776, "limit_size" : "3.1gb", "estimated_size_in_bytes" : 0, "estimated_size" : "0b", "overhead" : 1.0, "tripped" : 0 }, "parent" : { "limit_size_in_bytes" : 5988548608, "limit_size" : "5.5gb", "estimated_size_in_bytes" : 55438576, "estimated_size" : "52.8mb", "overhead" : 1.0, "tripped" : 0 } }
As You see, the size of indices.breaker.request.limit did change form 40% to 50% while indices.breaker.fielddata.limit is still 40% (3,1g)
With a curl:
curl -XPUT 'http://localhost:9200/_cluster/settings' -d '{ "persistent" : { "indices.breaker.fielddata.limit" : "60%" } }'
I can change the indices.breaker.fielddata.limit to 60%
Why the line form the config is not respected?
indices.breaker.fielddata.limit: 60%