Johnson
Johnson

Reputation: 167

Cause and how to debug Elasticsearch CircuitBreakingException

I want to know the variable situation with this error.

> 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]]

It happens from time to time, but I don't know why.

Upvotes: 4

Views: 1084

Answers (1)

Amit
Amit

Reputation: 32386

First, it's a good thing that is preventing the Out of memory error in your elasticsearch cluster, as explained in official ES link.

Elasticsearch contains multiple circuit breakers used to prevent operations from causing an OutOfMemoryError. Each breaker specifies a limit for how much memory it can use. Additionally, there is a parent-level breaker that specifies the total amount of memory that can be used across all breakers.

Now looking at your exception we can conclude few things which would help you to debug these sporadic issues and set better limits for different circuit breakers available in Elasticsearch mentioned in same link:

  1. Given that the circuit breaker happened for a parent limit as [parent] Data too large mentioned in the exception message.
  2. official link for in-flight circuit breaker This is happening for some in-flight requests as in_flight_requests mentioned in the exception message.
  3. As it's not a field data circuit breaker and in-flight circuit breaker, chances are high that very costly search requests are executing that time.
  4. You should reduce the JVM of the parent circuit breaker to less value, currently, by looking at your exception it looks like its using 95% of JVM, more info on how to set these can be found here.

Upvotes: 2

Related Questions