弹性云Circuit_breaking_exception

问题描述

我们最近将弹性云部署从6.8.5升级到7.9 升级后,我们会不时看到以下错误

{
  "error" : {
    "root_cause" : [
      {
        "type" : "circuit_breaking_exception","reason" : "[parent] Data too large,data for [<HTTP_Request>] would be [416906520/397.5mb],which is larger than the limit of [408420352/389.5mb],real usage: [416906520/397.5mb],new bytes reserved: [0/0b],usages [request=0/0b,fielddata=32399/31.6kb,in_flight_requests=0/0b,model_inference=0/0b,accounting=4714192/4.4mb]","bytes_wanted" : 416906520,"bytes_limit" : 408420352,"durability" : "PERMANENT"
      }
    ],"type" : "circuit_breaking_exception","durability" : "PERMANENT"
  },"status" : 429
}

此部署仅包含一个具有1G内存的节点。我们想知道此错误的原因。是由于升级吗?

谢谢。

解决方法

首先,断路器提供了保护,即某些请求不会将您的群集推送到它可以处理的范围之内,这是在杀死单个请求,而不是(可能)杀死整个群集。另请注意,仅此HTTP请求并不太大,但它会使parent断路器跳闸—因此,此请求在其他所有请求之上都将太多。

最初的断路器已在6.2.0中添加,但在7.0.0中已进一步拧紧。我认为这就是您现在(经常)看到此消息的原因。

您可以更改indices.breaker.total.limit,但这并不是从集群中获取更多收益的神奇选择。 1GB的内存可能不足以满足您的需求。