Администрирование · 12 мин
Как работает кластер серверов 1С: архитектура, настройка и диагностика
Как устроен и работает кластер серверов 1С: агенты, рабочие процессы, сеансы, соединения. Настройка, типичные ошибки и способы диагностики для администратора.
Кластер серверов 1С — это промежуточный слой между клиентскими приложениями (тонкий и толстый клиент, веб-сервер) и системой управления базами данных. Он принимает запросы пользователей, выполняет код конфигурации в серверном контексте, управляет сеансами и соединениями с СУБД, а также распределяет нагрузку между рабочими процессами. Без кластера файловая база справляется с несколькими пользователями, но промышленная эксплуатация с десятками и сотнями одновременных сеансов возможна только в клиент-серверном варианте.
Ключевая идея кластера — отказоустойчивость и масштабируемость. Несколько физических или виртуальных серверов объединяются в единую структуру, где каждый узел запускает агента сервера, а агенты координируют рабочие процессы. Если один узел выходит из строя, сеансы пользователей могут быть переведены на другой узел без полной остановки работы. Насколько быстро и безболезненно это произойдёт — зависит от корректности настройки требований назначения функциональности и резервирования.
Администратор взаимодействует с кластером либо через графическую консоль управления, либо через утилиту командной строки rac в связке с ras (сервер администрирования). Понимание внутреннего устройства кластера — процессов ragent, rmngr, rphost — необходимо, чтобы диагностировать зависания, утечки памяти и ошибки соединений, а не просто перезапускать службы вслепую.
Из каких процессов состоит кластер и что делает каждый
На каждом сервере, входящем в кластер, работает служба агента сервера — процесс ragent. Он слушает порт (по умолчанию 1540), ведёт реестр кластера, регистрирует рабочие процессы и обменивается служебной информацией с другими агентами в составе кластера. Один из серверов является центральным: именно на нём хранится основная копия реестра кластера, где перечислены информационные базы, рабочие серверы, администраторы и требования назначения функциональности.
Менеджер кластера (rmngr) координирует работу: выбирает, какой рабочий процесс обслужит новый сеанс, отслеживает состояние процессов и формирует список активных соединений. Рабочий процесс (rphost) — это исполнительная единица: в нём загружается конфигурация, выполняется серверный код, обрабатываются запросы к СУБД. Один rphost может обслуживать несколько сеансов разных информационных баз.
Клиентское приложение при подключении обращается к агенту (порт 1540), получает от менеджера кластера адрес подходящего рабочего процесса и далее взаимодействует с ним напрямую (порты из диапазона, по умолчанию 1560–1591). Важно, чтобы эти порты были открыты на межсетевых экранах между клиентами и сервером, иначе подключение оборвётся на этапе установки соединения.
Как клиент подключается к базе через кластер
Последовательность подключения выглядит так. Клиент обращается к агенту сервера по имени или IP и порту 1540 и запрашивает подключение к конкретной информационной базе. Агент через менеджер кластера определяет подходящий рабочий процесс с учётом требований назначения функциональности и текущей нагрузки. Клиенту возвращается адрес и порт rphost, после чего устанавливается прямое соединение, и начинается сеанс.
Сеанс — это логическая сущность, отражающая работу пользователя или фонового задания. Соединение — транспортный канал между клиентом и рабочим процессом. Один сеанс может существовать и при временно разорванном соединении (например, при кратковременном сбое сети), а одно соединение может обслуживать вызовы в рамках сеанса. Это различие важно при диагностике: «висящие» сеансы без активных соединений занимают лицензии и память.
Лицензии в клиент-серверном варианте выдаёт сервер 1С (или сервер лицензирования). Кластер подсчитывает активные сеансы и сопоставляет их с доступными программными или аппаратными лицензиями. Если лицензий не хватает, новый пользователь получит отказ на этапе подключения — это штатное поведение, а не сбой кластера.
Как настроить кластер: рабочие серверы и требования функциональности
Базовая настройка выполняется в консоли кластера: добавляются рабочие серверы, создаются информационные базы с указанием типа СУБД и параметров подключения. Для многоузловой конфигурации ключевой механизм — требования назначения функциональности. Они определяют, какие сервисы (клиентские соединения, фоновые задания, сервисы сеансовых данных) будут выполняться на каждом узле.
Типовая практика — выделить отдельный узел под фоновые задания и регламентные операции, чтобы тяжёлые обработки не конкурировали за ресурсы с интерактивной работой пользователей. Для этого создаётся требование, запрещающее клиентские соединения на выделенном узле и разрешающее там сервис фоновых заданий. Без такого разделения массовая выгрузка данных или пересчёт итогов может «подвесить» работу всех пользователей.
Обратите внимание на параметры рабочих процессов: максимальный объём памяти процесса, допустимое количество информационных баз на процесс, интервал перезапуска. Автоматический перезапуск rphost по расписанию или при превышении порога памяти — рабочий способ борьбы с постепенной деградацией, но он не заменяет поиска причины роста потребления памяти.
- 1Установите платформу одинаковой версии на все узлы и запустите службу агента сервера
- 2Откройте в консоли кластера центральный сервер и добавьте остальные рабочие серверы
- 3Создайте информационную базу, указав СУБД, сервер баз данных и имя базы
- 4Настройте требования назначения функциональности: отделите фоновые задания от клиентских соединений
- 5Задайте лимиты памяти и периодичность перезапуска рабочих процессов
- 6Проверьте подключение тестовым клиентом и выполните пробное фоновое задание
Как диагностировать проблемы: память, зависания, обрывы соединений
Наиболее частая жалоба — «1С тормозит» или «выкидывает пользователей». Начинать диагностику стоит с консоли кластера: список сеансов покажет, кто и что запустил, список соединений — какие rphost загружены, а состояние рабочих процессов — сколько памяти потребляет каждый. Если один процесс занимает аномально много памяти, посмотрите, какие сеансы он обслуживает: часто виновником оказывается один тяжёлый отчёт или циклическая обработка.
Для глубокого анализа используется технологический журнал — текстовые логи платформы, которые настраиваются через файл logcfg.xml. В нём фиксируются длительные вызовы СУБД, ошибки, взаимоблокировки, обрывы соединений. Техножурнал генерирует большой объём данных, поэтому включайте его точечно: только на время воспроизведения проблемы и только с нужными событиями.
Обрывы соединений («Соединение с сервером разорвано администратором», ошибки сети) чаще всего связаны не с кластером, а с инфраструктурой: нестабильная сеть, агрессивные настройки антивируса, закрытые порты, тайм-ауты на сетевом оборудовании. Проверяйте доступность портов 1540–1541 и диапазона рабочих портов с клиентских машин.
Как проверить результат
Память распределена равномерно, ни один rphost не приближается к лимиту
Один процесс растёт в памяти и не освобождает её после завершения сеансов
Число сеансов соответствует реальному числу пользователей и фоновых заданий
Много «спящих» сеансов без активных соединений — они держат лицензии
Типовые операции выполняются без видимых задержек
Задержки нарастают в течение дня и исчезают после перезапуска служб
Нет повторяющихся ошибок соединений и взаимоблокировок
Регулярные тайм-ауты запросов к СУБД или ошибки сети
Типичные ошибки администрирования кластера
Самая распространённая ошибка — ставить сервер 1С и СУБД на одну машину без расчёта ресурсов. Оба продукта активно потребляют память и дисковые операции; при нехватке ресурсов страдают оба, и локализовать проблему становится сложнее. Разнесение сервера приложений и СУБД по разным машинам — стандартная практика для нагруженных систем.
Вторая ошибка — отсутствие резервирования центрального сервера кластера. Если центральный узел единственный и выходит из строя, кластер теряет реестр и управляемость. Решение — настроить резервирование кластера с несколькими центральными серверами и выбрать подходящий уровень отказоустойчивости.
Третья группа ошибок — неконтролируемые обновления. Обновление платформы на сервере без согласования версий на всех узлах приводит к тому, что часть процессов работает на разных версиях, и соединения начинают отклоняться. Обновляйте платформу централизованно, с остановкой кластера или по чёткому плану поэтапного перевода узлов.
Ограничения кластера и когда нужны альтернативы
Кластер 1С решает задачи распределения нагрузки и отказоустойчивости на уровне сервера приложений, но не заменяет резервное копирование и не избавляет от узких мест в СУБД. Если база данных упирается в дисковую подсистему или блокировки, добавление рабочих процессов только усугубит ситуацию — сначала нужно оптимизировать запросы и индексы.
Для небольших внедрений (до нескольких десятков пользователей) полноценный многоузловой кластер часто избыточен: достаточно одного сервера с грамотно настроенными лимитами процессов. Альтернативой для удалённой работы служит публикация базы на веб-сервере — в этом случае кластер по-прежнему работает, но клиенты подключаются через HTTP, что упрощает сетевую настройку.
Отдельный сценарий — контейнеризация и облачные развёртывания. Кластер 1С можно развернуть на виртуальных машинах в облаке, но следует учитывать требования к лицензированию и стабильности сети между узлами: высокие задержки между серверами кластера заметно снижают общую производительность.
Сравнение вариантов развёртывания
Подходит для небольших баз и тестовых стендов. Ограничение — конкуренция за память и диск, сложная диагностика
Стандарт для продуктивной работы. Требует двух машин и настройки сети между ними
Для систем с высокими требованиями к доступности. Усложняет администрирование и требует одинаковых версий платформы на всех узлах
Удобно для удалённых пользователей и тонких клиентов через интернет. Добавляет веб-сервер как ещё один компонент для обслуживания
FAQ: частые вопросы о кластере 1С
Чем сеанс отличается от соединения в кластере?
Сеанс — это логическая сессия пользователя или фонового задания на сервере, соединение — сетевой канал между клиентом и рабочим процессом. Сеанс может существовать при разорванном соединении и продолжать занимать лицензию, поэтому «висячие» сеансы стоит периодически завершать через консоль кластера.
Сколько рабочих процессов rphost нужно на сервере?
Универсального числа нет: оно зависит от объёма оперативной памяти, числа баз и характера нагрузки. Практический подход — следить, чтобы суммарное потребление памяти процессами не приближалось к физическому объёму ОЗУ, и ограничивать память каждого процесса, чтобы сбой одного не затронул остальные.
Почему пользователей «выкидывает» из базы?
Частые причины: перезапуск рабочего процесса по лимиту памяти или расписанию, сетевые сбои, закрытые порты, тайм-ауты на сетевом оборудовании. Начните с технологического журнала на период обрыва и проверки доступности портов кластера с клиентской машины.
Можно ли обновить платформу без остановки работы пользователей?
Полностью безостановочное обновление возможно только при аккуратном поэтапном переводе узлов и если новая версия не требует обновления конфигурации базы. Если требуется обновление конфигурации с реструктуризацией, остановка работы пользователей обязательна — планируйте её на нерабочее время.
Что делает требование назначения функциональности?
Это правило, которое разрешает или запрещает выполнение определённых сервисов кластера (клиентских соединений, фоновых заданий) на конкретном рабочем сервере. С его помощью выделяют отдельный узел под регламентные задания, чтобы они не мешали интерактивной работе.
Нужен ли кластер, если пользователей меньше десяти?
Для малого коллектива часто достаточно файлового варианта или простейшего клиент-серверного развёртывания на одной машине. Кластер в полном смысле оправдан, когда нужны отказоустойчивость, разделение нагрузки и централизованное управление сеансами.
Что важно запомнить
Кластер 1С состоит из агентов, менеджера и рабочих процессов, которые распределяют сеансы и соединения с СУБД. Стабильная работа достигается разделением сервера 1С и СУБД, настройкой требований функциональности, контролем памяти процессов и резервированием центрального узла. Любые действия на продуктивном кластере выполняйте только при наличии актуальной резервной копии.