总熔断器(相当于似乎总闸)

参数: indices.breaker.total.use_real_memory

默认值:true

在 elasticsearch.yml中配置。

参数: indices.breaker.total.limit

如果 indices.breaker.total.use_real_memory : true, indices.breaker.total.limit 为堆大小的 95%。如果为false, indices.breaker.total.limit 为堆大小的70%

意思是,默认情况下。当堆内存使用95%,就报错触发熔断了。

field data 熔断器

参数: indices.breaker.fielddata.limit

默认值:堆的 40%

request 熔断器

for example, memory used for calculating aggregations during a request) from exceeding a certain amount of memory.

请求用于计算的内存,例如一次agg请求,使用内存如何超过阈值,就会熔断。

indices.breaker.request.limit

默认值:堆的 60%

in flight requests 熔断器

我的理解是:整个传入请求体占用的内存。

The in flight requests circuit breaker allows Elasticsearch to limit the memory usage of all currently active incoming requests on transport or HTTP level from exceeding a certain amount of memory on a node. The memory usage is based on the content length of the request itself. This circuit breaker also considers that memory is not only needed for representing the raw request but also as a structured object which is reflected by default overhead.

参数: network.breaker.inflight_requests.limit

默认值:堆的 100% (受限于总熔断器的限制)

accounting circuit breaker

限制在请求完成时未释放的内存中保存的内容的内存使用。这包括诸如 Lucene 段内存之类的内容。

参数: indices.breaker.accounting.limit

默认值:堆的 100%(受限于总熔断器的限制)

script(脚本) 熔断器

脚本编译的次数限制。

参数: script.max_compilations_rate

默认值 :150/5m 这是一个速率的值,代表五分钟内 150次

正则表达式熔断器

script.painless.regex.limit-factor

参数值: 例如,输入​​foobarbaz​​​的字符长度为​​9​​​。If ​​script.painless.regex.limit-factor​​​is ​​6​​​,正则表达式​​foobarbaz​​ 最多可以考虑 54 (9 * 6) 个字符。如果表达式超过此限制,它会触发正则表达式断路器并返回错误。

参数: script.painless.regex.enabled

是否开启正则表达式熔断器。

  • limited(默认)
    启用正则表达式,但使用​​script.painless.regex.limit-factor​​ 集群设置限制复杂性。
  • true​​
    启用没有复杂性限制的正则表达式。禁用正则表达式断路器。
  • false​​
    禁用正则表达式。任何包含正则表达式的 Painless 脚本都会返回错误。