Доступные команды:

В данном разделе приводится описание команд, которые используются для настройки лимитов ограничений входящей SIP-сигнализацией на UDP-транспорте SIP-адаптера при повышенной нагрузке на систему.

Таблица 1 — Описание параметров ограничений кластера протокол-адаптера SIP

Название параметраЗначение по умолчаниюОписание
ADL - Adaptive Defence Limitне установленоADL - Adaptive Defence Limit - Адаптивный защитный лимит (список соотношения (10 элементов) количества запросов (максимум 1000) к проценту (кратному 10, без 0 и 100) отклонения запросов).
Данный лимит работает в нормальном состоянии системы (normal) - это дополнительный уровень защиты, который активируется ещё до достижения LC.
Для каждого из указанного соотношения лимита система проверяет условие: текущее количество запросов в секунду > ADL - если да, то с указанной вероятностью входящие запросы отклоняются с 503.
Логика следующая: из каждых 100 входящих запросов первые N отбиваются, остальные проходят.
Например, настроено следующим образом: [{300, 10}, {600, 50}, {900, 90}] - тогда при количестве запросов > 300 в секунду отбивается каждый 10 запрос 503 ответом, при > 600 - половина, при > 900 - почти все.
Диапазон значений: [1..1000 (rps)] -> [1..100%]
ICL - Incoming Call Limitundefined

ICL - Incoming Call Limit - Лимит входящих вызовов (количество одновременных активных входящих вызовов).
Данный лимит ограничивает количество одновременных активных входящих вызовов на текущей ноде SIP-адаптера.
Проверяется в момент установки нового вызова (INVITE): значение метрики sip_active_calls (prometheus gauge, локально по ноде) сравнивается с ICL - если sip_active_calls > ICL, то INVITE отклоняется 503.
Отличается от остальных параметров: LC/LCPS/ADL ограничивают скорость (запросы в секунду), а ICL - ёмкость (сколько вызовов может одновременно жить).

Диапазон значений: [1..20000 (calls) | undefined for unlimit]

Не поддерживается в текущей версии.

LC - Level Critical 500

LC - Level Critical - Порог критического уровня (количество запросов в секунду).
При превышении данного порога считается, что система перегружена.
Система каждые TR миллисекунд подсчитывает количество запросов и масштабирует следующим образом: RPS = (количество запросов в секунду) * (1000 div TR).
Если RPS > LC, то система переходит в режим ограничения (LCDM).

Диапазон значений: [1, 10000]

LCDM - Level Critical Drop Modedenial_to_drop

LCDM - Level Critical Drop Mode - Режим сброса при критическом уровне (режим).
Определяет режим обработки входящей SIP-сигнализации при достижении порога критического уровня:

  • denial_to_drop (постепенный переход из отклонения запросов в тихий drop): при превышении LC система сначала отправляет 503 на запросы, затем после PC циклов или же времени PC * TR переходит в тихий drop пакетов без отправки 503;
  • denial_only (только отклонение запросов): при превышении LC система сразу переходит в режим отправки 503, без тихого drop пакетов;
  • drop_only (только тихий дроп): при превышении LC система сразу переходит на тихий drop пакетов, без отправки 503 (относится к REGISTER, SUBSCRIBE, MESSAGE, INVITE, OPTIONS, INFO, UPDATE, REFER, PRACK).

Допустимые значения: [denial_to_drop | denial_only | drop_only]

LCPS - Limit Critical Per Second500

LCPS - Limit Critical Per Second - Критический лимит в секунду (количество запросов в секунду).
Данный лимит является жестким порогом, сравнивающим прирост количества запросов в текущей секунде относительно предыдущей.
Если разница (запросы в данной секунде - запросы в прошлой секунде) > LCPS, входящие запросы немедленно отбиваются 503, минуя ADL и все остальные проверки.
При этом система остается в нормальном состоянии, при уже активном критическом режиме LCPS не проверяется. В отличие от LC (который считается за период TR), LCPS считается ровно за одну секунду.

Диапазон значений: [1, 10000]

LRC - Lockdown Relax Coefficient 3 -> 0 sec 750 ms

LRC - Lockdown Relax Coefficient - Коэффициент снятия ограничения (коэффициент (или количество циклов), который масштабируется до LRC * TR миллисекунд).
Множитель TR, определяющий, сколько циклов LRC или же времени LRC * TR нагрузка должна находиться ниже порога LC, прежде чем снимется критическое состояние.
Когда RPS упал ниже LC, система не возвращается в нормальное состояние мгновенно - она ждёт LRC циклов или же времени LRC * TR, чтобы убедиться, что нагрузка стабилизировалась.
Если нагрузка на систему стабилизировалась, система возвращается в нормальное состояние (normal), если не стабилизировалась - система остается в критическом состоянии (aroud_critical_limit или critical_limit).

Диапазон значений: [1, 100]

PC - Patience Time Coefficient1 -> 0 sec 250 ms

PC - Patience Time Coefficient - Коэффициент времени терпения (коэффициент (или количество циклов), который масштабируется до PC * TR миллисекунд).
Множитель TR, определяющий, сколько циклов PC или же времени PC * TR нагрузка должна непрерывно превышать LC, прежде чем система перейдет из состояния aroud_critical_limit (отправка 503 на запросы) в состояние critical_limit (drop или же тихое отбрасывание пакетов). Работает только при LCDM = denial_to_drop. При LCDM = denial_only или drop_only этот параметр не используется.
При режиме LCDM = denial_to_drop, когда RPS поднялся выше LC, система не переходит в состояние critical_limit мгновенно, она сначала переходит в состояние aroud_critical_limit (начинает отклонять запросы с 503 ответом), тем самым давая шанс клиенту снизить нагрузку.
Если и дальше RPS остается критическим в течение PC циклов или же времени PC * TR, то система переходит в состояние critical_limit (тихий DROP пакетов).
Если и в critical_limit есть превышение LC, то система также остается в состоянии critical_limit, минуя around_critical_limit.

Диапазон значений: [1, 10000]

TR - Time Request250

TR - Time Request - Период опроса CPS (миллисекунды).
Определяет, с каким периодом система должна проверять текущее количество запросов в секунду.
Чем меньше TR, тем быстрее реакция, но больше нагрузки на систему.
Также все временные вычисления зависят от TR:

  • Коэффициент масштабирования (RPS) = 1000 div TR;
  • Коэффициент снятия ограничения (LRC) = LRC * TR;
  • Коэффициент времени терпения (PC) = PC * TR.

Диапазон значений: [100, 1000]

Не рекомендуется без необходимости изменять параметры, описанные в таблице 1.


set

Настройка свойств кластера протокол-адаптера SIP.

Путь команды:

/cluster/adapter/sip1/sip/limits/set

Синтаксис:

set *|<NodeName> <FIELD> <VALUE>

Параметры:

<NodeName> — имя ноды протокол-адаптера SIP (sip1@ecss1/sip1@ecss2);
<FIELD> — имя параметра, значение которого необходимо изменить. Описание свойств приведено в таблице 1;
<VALUE> — новое значение параметра, возможные значения приведены в таблице 1.

Пример:

/cluster/adapter/sip1/sip/limits/set * ADL add 100 50              
Property "ADL" successfully changed from: 

   to
RPS > 100 -> 50% calls will be rejected.

clean

Командой устанавливается значение по умолчанию для заданного параметра кластера протокол-адаптера SIP.

Путь команды:

/cluster/adapter/sip1/sip/limits/clean

Синтаксис:

clean *|<NodeName>  [<FIELD>][--force]

Параметры:

<NodeName> — имя ноды протокол-адаптера SIP (sip1@ecss1/sip1@ecss2);
<FIELD> — свойство, для которого устанавливается значение по умолчанию. Опциональный параметр. Если не указывать данный параметр, то значения по умолчанию будут восстановлены для всех свойств кластера протокол-адаптера SIP;

force — запуск команды без подтверждения.

Пример:

/cluster/adapter/sip1/sip/limits/clean *            
[clean] You are going to clean all customized properties.
Are you sure?: yes/no ?> yes
Properties values successfully restored

info

Команда просмотра настроек свойств кластера протокол адаптера SIP.

Путь команды:

/cluster/adapter/sip1/sip/limits/info

Синтаксис:

info [* | <NodeName> [<Field>]]

Параметры:

<NodeName> — имя ноды протокол-адаптера SIP (sip1@ecss1/sip1@ecss2);
<FIELD> — имя параметра, опциональный параметр. Если параметр не указывать, будет показана информация по всем параметрам кластера протокол адаптера SIP.

Пример:

/cluster/adapter/sip1/sip/limits/info
┌────────┬────┬─────────────────┐
│Property│Node│      Value      │
├────────┼────┼─────────────────┤
│ADL     │    │                 │
│ICL     │    │undefined        │
│LC      │    │500              │
│LCDM    │    │denial_to_drop   │
│LCPS    │    │500              │
│LRC     │    │3 -> 0 sec 750 ms│
│PC      │    │1 -> 0 sec 250 ms│
│TR      │    │250              │
└────────┴────┴─────────────────┘