Reputation: 925
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%
Upvotes: 2
Views: 9737
Reputation: 17441
Seems like this is a known issue specified here issue:1,issue:2. In essence once you have dynamically updated the the breaker setting and set it as persistent there is no ideal way to reset to the defaults specified in config file. The persistent settings are themselves are stored in the global cluster state file and these settings override the setting in the config file (issue:3)
Upvotes: 2