sirkubax
sirkubax

Reputation: 925

Elasticsearch indices.breaker.fielddata.limit settings

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

Answers (1)

keety
keety

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

Related Questions