Балансировка
Для управления работой сервиса Процесс и балансировщика используются следующие параметры:
Имя секции
Название параметра
Имя параметра
Default
Min
Max
commonParams
Потребление памяти модулем (% от CPU).
maxModuleMemoryUsage
2
1
50
processParams
Максимальное количество потоков выполнения процессов/алгоритмов.
threadCount
5
1
10
processParams
Максимальное количество спящих процессов.
maxSleepingProcessCount
100
50
1000
processParams
Максимальный объем спящих процессов (МБ).
maxSleepingProcessMB
200
10
600
processParams
Максимальный объем памяти ожидающих старта процессов (МБ).
maxUnprocessedQueueMB
30
10
300
processParams
Минимальное время ожидания при переходе в спящий режим (мс).
minWaitBeforeSleep
10000
2000
processParams
Максимальное количество запросов, одновременно ожидающих ответа (% от maxSleepingProcessCount или maxSleepingProcessMB).
maxRunnedRequests
50
1
99
processParams
Максимальная длительность ожидания спящих процессов (мин).
maxSleepTimeMinutes
1440
1
Балансировка призвана сглаживать нагрузки на конкретном узле путем изменения количества потоков и памяти, выделенных на выполнение процессов.
По умолчанию балансировка включена на уровне кластера. При необходимости ее можно отключить на кластере или на конкретном сервисе процессов, установив параметр useBalancing: false.
Если в сервисе процессов показатели балансировки и потребления памяти узлом заполнены, то эти значения находятся в приоритете. Значения из кластера используются, только если в настройках процессов параметры балансировщика не заполнены.
Параметр Потребление памяти узлом устанавливается в настройках кластера и сервиса процессов однозначно и при балансировке не изменяется. Остальные параметры изменяются в диапазоне значений между Min / Max в зависимости от нагрузки и ресурсов CPU узла.
В диспетчере задач показатель фактически потребляемой памяти складывается из частного рабочего набора и общего рабочего набора с незначительной погрешностью:
Узел раз в минуту отслеживает использование ресурсов. При нагрузке на сервис:
Если сервис приблизился к порогу потребления ресурсов, балансировщик уменьшает все показатели до тех пор, пока порог потребления памяти не будет соблюдаться.
Если потребление ресурсов ниже чем 80% от максимально допустимого, происходит увеличение количества потоков до тех пор, пока потребление памяти не достигнет 90% от максимального.
При этом, если на сервисе процессов балансировка отключена, узел продолжает регулярно снимать показания и при необходимости высылать обновленные настройки балансировщика на сервис, но сервис их игнорирует с сообщением:Получены настройки балансировки в модуле с отключенным балансировщиком.
Внимание
Измененные параметры балансировщика отправляются узлом на сервис только в том случае, если на сервис идет нагрузка. В состоянии покоя балансировщик только снимает показатели.