Балансировка

Для управления работой модуля процессов и балансировщика введены параметры:

Имя секции

Название параметра

Имя параметра

De fa ul

M i n

M a x

comm onParams

Потребление памяти модулем (% от CPU)

max ModuleMemoryUsage

2

1

5 0

proce ssParams

Максимальное количество потоков выполнения процессов/алгоритмов

threadCount

5

1

1 0

Максимальное количество спящих и выполняющихся процессов на модуле процессов (в Диагностике «Журнал выполняющихся процессов»)

maxSle epingProcessCount

1 00

5 0

1 0 0 0

Максимальный объем спящих и выполняющихся процессов на модуле процессов (МБ)

max SleepingProcessMB

2 00

1 0

6 0 0

Максимальный объем очереди процессов/алгоритмов к обработке (МБ)

maxU nprocessedQueueMB

30

1 0

3 0 0

Минимальное время ожидания ответа до сохранения процесса на узле (мс)

m inWaitBeforeSleep

1 00 00

2 0 0 0

Максимальное количество процессов одновременно ожидающих ответа (% от maxSleepingProcessCount или maxSleepingProcessMB)

maxRunnedRequests

50

1

9 9

Максимальное время сна процесса (мин)

ma xSleepTimeMinutes

14 40

1

Балансировка призвана сглаживать нагрузки на конкретном узле путем изменения количества потоков и памяти, выделенных на выполнение процессов.

По умолчанию балансировка включена на уровне кластера. При необходимости ее можно отключить на кластере или на конкретном модуле процессов заполнив параметр «useBalancing»: false.

Если в модуле процессов показатели балансировки и потребления памяти узлом заполнены, то эти значения в приоритете. Значения из кластера используются, только если в настройках процессов параметры балансировщика не заполнены.

Параметр «Потребление памяти узлом» выставляется в настройках кластера и модуля процессов однозначно и при балансировке не изменяется. Остальные параметры изменяются в диапазоне значений между Min/Max в зависимости от нагрузки и ресурсов CPU узла.

В диспетчере задач показатель фактически потребляемой памяти складывается из частного рабочего набора и общего рабочего набора с незначительной погрешностью:

../_images/image2610.png

Узел раз в минуту мониторит использование ресурсов. При нагрузке на модуль:

  • если модуль приблизился к порогу потребления ресурсов, то балансировщик уменьшает все показатели до тех пор, пока порог потребления памяти не будет соблюдаться;

  • если потребление ресурсов ниже, чем 80%*максимально допустимого, то происходит увеличение количества потоков до тех пор, пока потребление памяти не станет 90% от максимального.

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

Внимание

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

../_images/image2710.png