DBAtlas · Атлас эксплуатации баз данных

circuit_breaking_exception: CircuitBreakingException[[parent]]: данные слишком велики, данные для [<...>] составили бы [...], что превышает лимит [...]

Elasticsearch

Что это значит?

Запрос отклонён, поскольку превысил бы лимит circuit breaker по памяти (heap). Elasticsearch заранее останавливает запрос, чтобы узел не аварийно завершился с OutOfMemoryError. Breaker [parent] контролирует общее использование памяти; breaker [fielddata] — память fielddata для текстовых полей.

Почему возникает?

Недостаточный JVM heap, очень большие/сложные агрегации, большие наборы результатов, крупные bulk-запросы, fielddata, загруженная для текстовых полей, или множество тяжёлых параллельных запросов, заполняющих heap. Обычно это симптом нехватки heap.

Как исправить

Уменьшите запросы: сократите размер агрегаций, размер пакетов bulk и возвращаемые поля. Агрегируйте по подполю keyword (.keyword), а не по fielddata текстовых полей. Увеличьте JVM heap (~50% RAM сервера, не более ~31GB). Отслеживайте нагрузку на heap: GET _cat/nodes?v&h=name,heap.percent. Устраняйте первопричину (память/запрос), а не повышайте временно лимиты breaker. Проверьте, какой breaker сработал, с помощью GET _nodes/stats/breaker.

Открыть в DBAtlas →

Ещё по этой СУБД