При росте нагрузки на информационную базу часто возникает задача распределения ролей между серверами кластера 1С:Предприятие. Одной из типичных задач является изоляция тяжелых регламентных и фоновых заданий, чтобы они выполнялись на отдельном физическом или виртуальном сервере и не отнимали ресурсы у интерактивных сеансов пользователей.
Для решения этой задачи в платформе 1С предусмотрен механизм Требований назначения функциональности (ТНФ). Однако администраторы нередко сталкиваются с ситуацией, когда правила созданы, но фоновые задания продолжают запускаться на произвольных серверах. Разберем по шагам, почему это происходит и как правильно настроить кластер.
Проанализируем основные ошибки, которые приводят к тому, что фоновые задания игнорируют созданные правила распределения:
Сервис фоновых заданий. Данный сервис отвечает исключительно за управление расписанием и регистрацию заданий, но не исполняет их программный код. Непосредственное выполнение кода фонового задания происходит в рабочем процессе через соединение, поэтому настраивать нужно объект Клиентское соединение с ИБ.Рассмотрим порядок настройки для сценария, при котором в кластере есть как минимум два рабочих сервера: Сервер_Фоновые (выделенный под регламентную нагрузку) и Сервер_Пользователи (для работы пользователей).
В свойствах рабочего сервера в ветке «Требования назначения функциональности» добавим правила в следующем порядке:
Клиентское соединение с ИБ, Дополнительный параметр: BackgroundJob.ScheduledJob, Тип требования: Назначать. Это правило направляет регламентные задания на данный сервер.Клиентское соединение с ИБ, Дополнительный параметр: BackgroundJob.CommonModule, Тип требования: Назначать. Это правило переносит программные фоновые задания, запущенные через вызов ФоновыеЗадания.Выполнить().Любой объект требования, Дополнительный параметр: (пусто), Тип требования: Не назначать. Это правило запрещает запуск интерактивных пользовательских сеансов и других сервисов на выделенном сервере.Чтобы исключить выполнение тяжелых задач на серверах, где работают пользователи, добавим правила:
Клиентское соединение с ИБ, Дополнительный параметр: BackgroundJob.ScheduledJob, Тип требования: Не назначать.Клиентское соединение с ИБ, Дополнительный параметр: BackgroundJob.CommonModule, Тип требования: Не назначать.Любой объект требования, Дополнительный параметр: (пусто), Тип требования: Авто (или Назначать). Это правило разрешает выполнение всех остальных функций кластера.После добавления и проверки порядка правил обязательно применим обновленную конфигурацию. В контекстном меню кластера серверов доступны два варианта применения:
Проанализируем технические ограничения, о которых необходимо помнить при внедрении требований назначения функциональности:
rphost на этой машине.