弹性云 Circuit_breaking_exception

Elastic Cloud 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",
    "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"
  },
  "status" : 429
}

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

谢谢。

首先,断路器是一种保护措施,可防止某些请求将您的集群推到它可以处理的极限之外 — 这是终止单个请求而不是(可能)整个集群。另请注意,这个 HTTP 请求本身并不太大,但它会触发 parent 断路器 - 所以这个请求在其他所有请求之上会太多。

初始断路器已在 6.2.0, but was tightened down further in 7.0.0 中添加。我想这就是您现在(更频繁地)看到这个的原因。

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