DBAtlas · Atlas de operações de banco de dados

circuit_breaking_exception: CircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]]

Elasticsearch

O que significa?

Uma requisição foi rejeitada porque excederia o limite do circuit breaker de memória (heap). O Elasticsearch interrompe a requisição antecipadamente para evitar que o nó trave com um OutOfMemoryError. O breaker [parent] protege o uso total de memória; o breaker [fielddata] protege a memória de fielddata em campos text.

Por que acontece?

JVM heap insuficiente, agregações muito grandes/complexas, grandes conjuntos de resultados, grandes requisições bulk, fielddata carregado em campos text, ou muitas consultas pesadas concorrentes enchendo o heap. Geralmente é um sintoma de pressão no heap.

Como resolver

Reduza as consultas: diminua o tamanho das agregações, o tamanho dos lotes bulk e os campos retornados. Agregue no subcampo keyword (.keyword) em vez de fielddata em campos text. Aumente o JVM heap (~50% da RAM do servidor, no máximo ~31GB). Monitore a pressão no heap: GET _cat/nodes?v&h=name,heap.percent. Corrija a causa raiz (memória/consulta) em vez de elevar temporariamente os limites dos breakers. Verifique qual breaker disparou com GET _nodes/stats/breaker.

Abrir no DBAtlas →

Mais entradas deste banco