Перейти к основному содержимому
Версия: 5.3

Настройка и использование лимитов

Лимиты ограничивают ресурсы Smart Monitor, используемые для обработки запросов.

Настройка пользовательских и ролевых лимитов

Порядок проверки лимитов для пользователя

Проверка каждого лимита пользователя проходит последовательно. Сначала проверяется его собственный лимит. Если он не указан, проверяются лимиты ролей пользователя. Если у нескольких ролей указан данный лимит, выбирается наиболее расширенный из них. Если у ролей пользователя также не указан лимит, используется базовый лимит.

Лимиты можно настроить через интерфейс, доступный в навигационном меню по пути Параметры системы - Настройки модулей - Лимиты.

Интерфейс настройки лимитов

В данном разделе Smart Monitor можно настроить базовые лимиты, лимиты для отдельных ролей или пользователей.

Пример настройки

Пользователю назначены следующие лимиты:

НазваниеЗначение
max_qsize500
allowed_commandssource
stats
eval

Также у этого пользователя имеются роли developer и user. Лимиты для роли developer:

НазваниеЗначение
max_search_running_time500
allowed_commandssource
streamstats
eventstats

Лимиты для роли user:

НазваниеЗначение
max_qsize1000
allowed_dt_startnow-3w

После объединения всех видов лимитов получается следующая конфигурация:

НазваниеЗначениеВид лимита
max_qsize500Персональный
allowed_dt_startnow-3wПерсональный
max_search_running_time500Из роли developer
allowed_commandssource
stats
eval
streamstats
eventstats
Совокупность персонального лимита и роли developer
allowed_dt_endПо умолчаниюБазовый
max_payload_row_countПо умолчаниюБазовый
max_payload_sizeПо умолчаниюБазовый
max_command_ram_usageПо умолчаниюБазовый

Системные настройки лимитов

Настройки лимитов хранятся в _cluster/settings в словаре sme.core. Ниже представлена таблица с настройками лимитов и их значениями по умолчанию.

НазваниеОписаниеЗначение по умолчанию
enable_limitsВключение/отключение лимитирования.true
check_base_limitСоздает индекс с лимитами, если он отсутствует. Создает базовый лимит, если он отсутствует в индексе с лимитами.true
limits.index_nameНазвание индекса, в котором хранятся лимиты..sm_sme_limits_user
max_subsearch_hits_countМаксимальное количество документов, возвращаемых подзапросом.50000
list_limitМаксимальное количество возвращаемых значений функцией list команды stats.100
sort_limitМаксимальное количество документов, сортируемое командой sort.10000

Параметры лимитирования

Лимиты при старте запроса

  • допустимый временной интервал: allowed_dt_start и allowed_dt_end
  • список доступных команд: allowed_commands
  • максимальное количество запрашиваемых данных: max_qsize
  • максимальное количество параллельных запросов: max_parallel_request_count
  • максимальный объем возвращаемых документов из справочника в байтах: max_lookup_size
  • время жизни результата фоновой задачи: background_result_ttl
  • суммарный объем на диске для результатов фоновых задач: background_disk_quota
Обратите внимание!

Параметры max_lookup_size, background_result_ttl и background_disk_quota недоступны для редактирования через интерфейс управления лимитами Smart Monitor. Для изменения данных параметров необходимо выполнить API-запрос через Консоль разработчика. Пример такого запроса приведен ниже:

POST .sm_sme_limits_user/_update/<id документа>
{
"doc": {
"background_disk_quota": 5000000000,
"background_result_ttl": 86400,
"max_lookup_size": 500000000
}
}

Лимиты во время выполнения запроса

  • максимальное время выполнения запроса в секундах: max_search_running_time
  • количество документов payload: max_payload_row_count
  • размер payload в байтах: max_payload_size
  • количество оперативной памяти, выделенной на поток, в байтах: max_command_ram_usage

Лимиты на отдельные команды

  • количество документов, возвращаемых подзапросами
  • количество обрабатываемых значений функцией list команды stats
  • количество документов, сортируемых командой sort