Использование Circuit Breaker в SME
Для избежания критического уровня использования оперативной памяти при выполнении поисковых запросов необходимо включить SME Circuit Breaker с помощью настройки sme.breaker.enable
в Cluster Settings.
SME Circuit Breaker позволяет ограничивать потребление оперативной памяти поисковыми запросами и останавливать их при превышении заданного лимита.
Для корректной работы SME Circuit Breaker необходимо включить лимиты.
Работа Circuit Breaker
Если лимиты и SME Circuit Breaker включены, при каждом запросе данных из любого источника, а также при выполнении команд будет производиться расчет объема обрабатываемых событий. В случае превышения установленного лимита запрос, вызвавший его, будет остановлен во избежание ошибки Out Of Memory
. Точность расчета регулируется кластерной настройкой sme.breaker.payload.step
.
Системные настройки Circuit Breaker
Настройки Circuit Breaker хранятся в _cluster/settings
. Ниже представлена таблица с настройками Circuit Breaker и их значениями по умолчанию.
Название | Описание | Значение по умолчанию |
---|---|---|
sme.breaker.enable | Включает SME Circuit Breaker. | false |
sme.breaker.limit | Лимит использования JVM heap. | 60% |
sme.breaker.overhead | Дополнительный коэффициент для определения итогового использования ОЗУ. | 1.0 |
sme.breaker.type | Тип Circuit Breaker в Opensearch. Не рекомендуется изменять. | memory |
sme.breaker.payload.step | Шаг при оценке размера событий в payload. | 4 |