Link Search Menu Expand Document Documentation Menu

断路器设置

断路器可防止 OpenSearch 导致 Java OutOfMemoryError。父断路器指定所有子断路器的可用内存总量。子断路器指定其自身的可用内存总量。

要了解有关静态和动态设置的更多信息,请参阅配置 OpenSearch

父断路器设置

OpenSearch 支持以下父断路器设置

  • indices.breaker.total.use_real_memory (静态,布尔值):如果为 true,则父断路器会考虑实际内存使用量。否则,父断路器会考虑子断路器保留的内存量。默认值为 true

  • indices.breaker.total.limit (动态,百分比):指定父断路器的初始内存限制。如果 indices.breaker.total.use_real_memorytrue,则默认值为 JVM 堆的 95%。如果 indices.breaker.total.use_real_memoryfalse,则默认值为 JVM 堆的 70%。

字段数据断路器设置

字段数据断路器限制将字段加载到字段数据缓存所需的堆内存。OpenSearch 支持以下字段数据断路器设置

  • indices.breaker.fielddata.limit (动态,百分比):指定字段数据断路器的内存限制。默认值为 JVM 堆的 40%。

  • indices.breaker.fielddata.overhead (动态,双精度浮点数):一个常数,字段数据估算值乘以该常数以确定最终估算值。默认值为 1.03。

请求断路器设置

请求断路器限制构建请求所需数据结构(例如,计算聚合时)所需的内存。OpenSearch 支持以下请求断路器设置

  • indices.breaker.request.limit (动态,百分比):指定请求断路器的内存限制。默认值为 JVM 堆的 60%。

  • indices.breaker.request.overhead (动态,双精度浮点数):一个常数,请求估算值乘以该常数以确定最终估算值。默认值为 1。

飞行中请求断路器设置

飞行中请求断路器限制传输层和 HTTP 层上所有当前运行的传入请求的内存使用量。请求的内存使用量基于请求的内容长度,并包括原始请求所需的内存和表示该请求的结构化对象。OpenSearch 支持以下飞行中请求断路器设置

  • network.breaker.inflight_requests.limit (动态,百分比):指定飞行中请求断路器的内存限制。默认值为 JVM 堆的 100%(因此,飞行中请求的内存使用限制由父断路器的内存限制决定)。

  • network.breaker.inflight_requests.overhead (动态,双精度浮点数):一个常数,飞行中请求估算值乘以该常数以确定最终估算值。默认值为 2。

脚本编译断路器设置

脚本编译断路器限制了在时间间隔内内联脚本编译的数量。OpenSearch 支持以下脚本编译断路器设置

  • script.max_compilations_rate (动态,速率):在给定上下文中,在时间间隔内编译的唯一动态脚本的最大数量。默认值为每 5 分钟 150 个(150/5m)。

正则表达式断路器设置

正则表达式断路器启用或禁用正则表达式并限制其复杂性。OpenSearch 支持以下正则表达式断路器设置

  • script.painless.regex.enabled (静态,字符串):在 Painless 脚本中启用正则表达式。有效值为
    • limited:启用正则表达式并使用 script.painless.regex.limit-factor 设置限制其复杂性。
    • true:启用正则表达式。关闭正则表达式断路器,不限制正则表达式复杂性。
    • false:禁用正则表达式。如果 Painless 脚本包含正则表达式,则返回错误。

    默认值为 limited

  • script.painless.regex.limit-factor (静态,整数):仅当 script.painless.regex.enabled 设置为 limited 时应用。限制 Painless 脚本中正则表达式的字符数。字符限制通过将脚本输入中的字符数乘以 script.painless.regex.limit-factor 来计算。默认值为 6(因此,如果输入有 5 个字符,则正则表达式中的最大字符数为 5 · 6 = 30)。
剩余 350 字符

有问题?

想贡献?