es官方为我们提供的堆内存保护机制-熔断器( breaker )

总熔断器(相当于似乎总闸)
参数: 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-factoris 6,正则表达式foobarbaz 最多可以考虑 54 (9 * 6) 个字符。如果表达式超过此限制,它会触发正则表达式断路器并返回错误。

参数: script.painless.regex.enabled

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

limited(默认)

启用正则表达式,但使用 script.painless.regex.limit-factor 集群设置限制复杂性。

true

启用没有复杂性限制的正则表达式。禁用正则表达式断路器。

false

禁用正则表达式。任何包含正则表达式的 Painless 脚本都会返回错误。
————————————————
版权声明:本文为CSDN博主「水的精神」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/star1210644725/article/details/123767568

你可能感兴趣的:(elasticsearch)