elasticsearch Elasticsearch电路断路异常的原因及调试方法,elasticsearch,exception,circuit-breaker,elasticsearch,Exception,Circuit Breaker" /> elasticsearch Elasticsearch电路断路异常的原因及调试方法,elasticsearch,exception,circuit-breaker,elasticsearch,Exception,Circuit Breaker" />

elasticsearch Elasticsearch电路断路异常的原因及调试方法

elasticsearch Elasticsearch电路断路异常的原因及调试方法,elasticsearch,exception,circuit-breaker,elasticsearch,Exception,Circuit Breaker,我想知道这个错误的变化情况 > CircuitBreakingException[[parent] Data too large, data for > [<transport_request>] would be [32633199948/30.3gb], which is larger > than the limit of [32573515366/30.3gb], real usage: > [32633199624/30.3gb], new byt

我想知道这个错误的变化情况

> CircuitBreakingException[[parent] Data too large, data for
> [<transport_request>] would be [32633199948/30.3gb],  which is larger
> than the limit of [32573515366/30.3gb], real usage:
> [32633199624/30.3gb], new bytes reserved: [324/324b] , usages
> [request=0/0b, fielddata=182494625/174mb, 
> in_flight_requests=332048906/316.6mb, accounting=908301644/866.2mb]]
>CircuitBreakingException[[parent]数据太大,无法读取数据
>[]将是[32633199948/30.3gb],更大
>超过[32573515366/30.3gb]的限制,实际使用:
>[32633199624/30.3gb],保留的新字节:[324/324b],用法
>[请求=0/0b,现场数据=182494625/174mb,
>飞行中请求=332048906/316.6mb,记帐=908301644/866.2mb]]

这种情况时有发生,但我不知道为什么。

首先,防止elasticsearch集群内存不足是一件好事,如中所述

Elasticsearch包含多个断路器,用于防止 操作导致OutOfMemoryError。每个断路器指定一个断路器 限制它可以使用的内存量。此外,还有一个 父级断路器,指定所需的内存总量 可用于所有断路器

现在看看您的例外情况,我们可以总结出一些东西,帮助您调试这些零星问题,并为同一链接中提到的Elasticsearch中的不同断路器设置更好的限制:

  • 由于异常消息中提到的
    [parent]数据太大
    ,断路器发生在父限位
  • 这在异常消息中提到的一些飞行中请求中发生,如
    飞行中请求
  • 由于它不是一个现场数据断路器和飞行中断路器,很有可能在那个时候执行非常昂贵的搜索请求
  • 您应该将父断路器的JVM减少到较小的值,目前,通过查看您的异常,它看起来像是使用了95%的JVM,可以找到有关如何设置这些的更多信息

  • 检查您的字段缓存GET/\u stats/fielddata?fields=*@Johnny,它是一个
    飞行中的请求
    断路器,因此检查字段数据是不够的,添加了有助于调试这些问题的答案,请看一看忍者谢谢您每次的帮助。@Johnson,很高兴我能提供帮助,并感谢您接受并投票决定答案:-)