Причина и как отладить Elasticsearch CircuitBreakingException - PullRequest
2 голосов
/ 18 марта 2020

Я хочу знать переменную ситуацию с этой ошибкой.

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

Это происходит время от времени, но я не знаю почему.

1 Ответ

2 голосов
/ 18 марта 2020

Во-первых, это хорошая вещь, которая предотвращает ошибку «Недостаточно памяти» в вашем кластере эластичного поиска, как описано в официальной ссылке ES .

Elasticsearch содержит несколько используемых выключателей чтобы операции не вызывали OutOfMemoryError . Каждый прерыватель определяет предел того, сколько памяти он может использовать. Кроме того, существует прерыватель на уровне родителей, который определяет общий объем памяти, который может использоваться всеми прерывателями.

Теперь, глядя на ваше исключение, мы можем сделать несколько выводов, которые помогут вам отладить эти sporadi c выдает и устанавливает лучшие пределы для различных автоматических выключателей, доступных в Elasticsearch, упомянутом в той же ссылке:

  1. Учитывая, что автоматический выключатель произошел для родительского ограничения, как [parent] Data too large, упомянутое в сообщении об исключении.
  2. официальная ссылка для автоматического выключателя в полете Это происходит для некоторых запросов в полете, как in_flight_requests упоминается в сообщении об исключении.
  3. Поскольку это не автоматический выключатель полевых данных и автоматический выключатель в полете, высока вероятность того, что в это время выполняются очень дорогостоящие поисковые запросы, и вы можете использовать этот блог для отладки медленных поисков. эффективно.
  4. Вы должны уменьшить JVM родительского автоматического выключателя до меньшего значения, в настоящее время, глядя на ваше исключение, похоже, что он использует 95% JVM, больше информации о том, как установить их, можно найти здесь .
...