Как устроен кластер 1С:Предприятия и что в нём настраивать администратору
Содержание
Кластер серверов 1С — это группа процессов сервера 1С:Предприятия 8.3 (на одном или нескольких компьютерах), которая обслуживает общий список информационных баз и распределяет между собой работу пользователей. Клиент подключается не к конкретной машине, а к кластеру: он сам решает, какой рабочий процесс выполнит запрос, и при сбое одного сервера может переключить работу на другой.
Типичная ситуация: компания выросла с 20 до 150 пользователей, база в клиент-серверном варианте, и в 10 утра всё «встаёт». Добавить памяти — полумера. Правильный путь — понять, как работает кластер серверов 1С, как он распределяет нагрузку, и настроить его под реальные объёмы: лимиты процессов, второй рабочий сервер, резервирование.
Из чего состоит кластер серверов 1С
Кластер собирается из нескольких типов процессов. Их имена стоит знать наизусть: они видны в диспетчере задач и в логах.
| Процесс | Что делает | Порт по умолчанию |
|---|---|---|
ragent — агент сервера | Точка входа: принимает первичное подключение клиента и консоли, хранит список кластеров на машине | 1540 |
rmngr — менеджер кластера | Управляет кластером: реестр баз, сеансы, блокировки, сервисы кластера | 1541 |
rphost — рабочий процесс | Выполняет код конфигурации и запросы к СУБД от имени пользователей | диапазон 1560–1591 |
ras — сервер администрирования | Даёт доступ утилите командной строки rac | 1545 |
Путь клиента такой: 1С обращается к агенту на порт 1540, агент указывает менеджер кластера (1541), менеджер назначает рабочий процесс из диапазона портов. Дальше клиент общается с rphost напрямую. Консоль администрирования тоже подключается через агента.
Центральный и рабочий сервер
В терминах 1С «сервер» — это не железо, а запись в кластере:
- 🖥️ Рабочий сервер — компьютер, на котором кластер может запускать рабочие процессы и сервисы.
- 🧭 Центральный сервер — рабочий сервер с флажком «Центральный сервер» в свойствах. Он хранит реестр кластера и умеет управлять им.
В простейшей схеме на одной машине всё совпадает: один компьютер, один агент, один менеджер, несколько rphost. В отказоустойчивой схеме центральных серверов минимум два.
Где кластер хранит настройки
Служебные данные лежат в каталоге srvinfo (путь задаётся при установке службы). Внутри — папка reg_1541 с файлом 1CV8Clst.lst: это реестр кластера со списком баз, серверов и администраторов. Там же папки snccntx… — кэш сеансовых данных.
Файл 1CV8Clst.lst не правят руками и не удаляют. Без него кластер «забывает» все базы и настройки. Делайте копию каталога srvinfo перед любыми работами с кластером.
Сервисы кластера
Внутри менеджера кластера работают сервисы: сервис блокировок, сервис сеансовых данных, сервис журналов регистрации, сервис полнотекстового поиска, сервис лицензирования и другие. Их список видно в консоли у каждого менеджера кластера. Это важно для балансировки: тяжёлые сервисы можно вынести на отдельный сервер.
Как кластер 1С распределяет нагрузку между процессами
Когда пользователь открывает базу, менеджер выбирает рабочий процесс. Выбор зависит от трёх вещей.
- Режим распределения нагрузки в свойствах кластера. Варианты — приоритет по производительности или приоритет по памяти. В первом случае новое соединение получает процесс с лучшей доступной производительностью, во втором — кластер старается экономить память и не плодить процессы.
- Доступная производительность каждого
rphost. Кластер её измеряет постоянно: процесс, который медленно отвечает, получает меньше новых соединений. - Требования назначения функциональности (ТНФ) в свойствах рабочего сервера. Они говорят, какие объекты на каком сервере можно обслуживать.
Требования назначения функциональности на практике
ТНФ — главный инструмент масштабирования. Для каждого рабочего сервера задают правила вида «объект требования → тип требования»:
- 👥 Клиентское соединение — где выполнять работу пользователей;
- ⏱️ Фоновое задание — где крутить регламентные и фоновые задания;
- 🔒 Сервисы кластера — где держать, например, сервис блокировок или журналы регистрации.
Тип требования — «Назначать», «Не назначать» или «Авто». Классическая схема для двух серверов: пользователи на сервере А, фоновые задания и полнотекстовый поиск на сервере Б. Тогда ночное обновление индекса или обмен с сайтом не тормозят бухгалтерию.
Фильтр можно сузить до конкретной базы и даже до значения дополнительного параметра. Например, обслуживать фоновые задания только одной тяжёлой базы на отдельной машине.
Если менеджер кластера перегружен, включите в свойствах рабочего сервера флажок «Менеджер под каждый сервис». Тогда сервисы разойдутся по отдельным процессам rmngr, и один «шумный» сервис не задушит остальные.
Настройка рабочих процессов и лимитов памяти
Большинство проблем с производительностью и падениями — от лимитов, оставленных по умолчанию или выставленных наугад. Параметры делятся на два места.
Свойства кластера
| Параметр | Что даёт | Ориентир |
|---|---|---|
| Интервал перезапуска | Плановый перезапуск рабочих процессов, в секундах | 86400 (раз в сутки), если процессы «распухают» |
| Выключенные процессы останавливать через | Сколько ждать завершения старого процесса после перезапуска | 60–300 секунд |
| Принудительно завершать проблемные процессы | Кластер сам снимает зависшие процессы | Включить на нагруженных системах |
| Уровень отказоустойчивости | Сколько центральных серверов может отказать | см. раздел про резервирование |
При плановом перезапуске кластер сначала поднимает новый rphost, переводит на него новые соединения, а старый процесс выключает. Для пользователя это обычно незаметно, но длинная операция в старом процессе может прерваться — ставьте интервал на ночь.
Свойства рабочего сервера
Здесь задаются ограничения по памяти и процессам:
- 📦 Количество ИБ на процесс и Количество соединений на процесс — сколько баз и пользователей обслуживает один
rphost. Чем меньше, тем больше процессов запустит кластер. - 🧮 Максимальный объём памяти рабочих процессов — общий потолок для всех
rphostна этом сервере. - 🚨 Безопасный расход памяти за один вызов — если один серверный вызов съел больше, кластер его прервёт с ошибкой. Спасает от отчёта без отборов, который пытается выбрать всю базу.
- 🌡️ Временно допустимый объём памяти процессов и интервал превышения — сколько памяти и как долго процесс может держать сверх нормы, прежде чем кластер начнёт его выключать.
- 🔌 Диапазон IP-портов — откуда брать порты для
rphost.
Расчёт на пальцах. Сервер с 64 ГБ памяти, СУБД на другой машине. Оставьте 8 ГБ операционной системе и прочему, тогда потолок для рабочих процессов — около 56 ГБ. Безопасный расход за вызов разумно начать с 4–6 ГБ и скорректировать по технологическому журналу. Если на той же машине стоит СУБД, делите память между ней и 1С явно, иначе они будут вытеснять друг друга.
Не ставьте лимиты впритык к физической памяти: при её исчерпании кластер начнёт аварийно обрывать сеансы.
Отказоустойчивость и резервирование кластера 1С
Отказоустойчивость в 8.3 строится из двух настроек:
- В кластер добавляют второй рабочий сервер и в его свойствах ставят флажок «Центральный сервер».
- В свойствах кластера поднимают уровень отказоустойчивости. Значение N означает, что кластер переживёт отказ N центральных серверов. Для уровня 1 нужно минимум два центральных сервера.
После этого сервисы кластера получают резервные копии на втором сервере. Если первый сервер выключится, его роль подхватит второй: реестр и сервисы уже там. Пользователи, работавшие на упавшем сервере, переподключатся. Незаписанные данные в открытых формах при этом могут потеряться.
Строка подключения с несколькими адресами
Чтобы клиент мог найти кластер даже без первого сервера, в списке баз в адресе кластера перечисляют оба сервера через запятую:
Srvr="srv-1c-01,srv-1c-02";Ref="buh";
Чего кластер не резервирует
Кластер защищает только процессы 1С. Сама база лежит в СУБД, и её отказоустойчивость — отдельная задача: зеркалирование или Always On в MS SQL, потоковая репликация в PostgreSQL. Если упадёт сервер СУБД, второй сервер 1С не поможет.
| Что упало | Что спасает |
|---|---|
| Один из серверов 1С | Второй центральный сервер + уровень отказоустойчивости ≥ 1 |
Отдельный rphost | Кластер перезапустит процесс сам, сеансы на нём оборвутся |
| Сервер СУБД | Только средства СУБД: реплика, кластер СУБД, резервные копии |
Каталог srvinfo | Копия каталога, снятая при остановленной службе |
Все серверы одного кластера должны работать на одной и той же версии платформы, вплоть до последней цифры номера сборки. Обновляйте их вместе в одно окно обслуживания.
Лицензирование
Лицензия на сервер нужна на каждый рабочий сервер, где запускаются рабочие процессы. Часть механизмов масштабирования, включая требования назначения функциональности, относится к редакции КОРП. Перед проектированием схемы из нескольких серверов сверьте, что входит в ваш вариант лицензии на сервер.
Мониторинг и диагностика работы кластера
Консоль администрирования серверов
Основной инструмент — оснастка «Администрирование серверов 1С Предприятия». В ней смотрят:
- список рабочих процессов: занятая память, доступная производительность, число соединений;
- сеансы по базе: кто сидит, сколько времени занимает вызов, какой процесс обслуживает;
- блокировки: кто кого держит при ошибках «Конфликт блокировок».
Если оснастка перестала открываться после обновления платформы, перерегистрируйте библиотеку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Номер версии подставьте свой — тот же, что у службы сервера.
Утилита rac
Для скриптов и Linux удобнее rac. Сначала запускают сервер администрирования ras (порт 1545), затем:
rac localhost:1545 cluster list
rac localhost:1545 server list --cluster=<uuid>
rac localhost:1545 process list --cluster=<uuid>
rac localhost:1545 session list --cluster=<uuid>
Если в кластере заведён администратор, добавьте --cluster-user и --cluster-pwd. Остальные команды и параметры — в справке rac help.
Технологический журнал
Когда консоль показывает только «медленно», включайте технологический журнал. Файл logcfg.xml кладут в каталог conf платформы. Минимальная настройка для поиска исключений и долгих вызовов:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="CALL"/>
<gt property="duration" value="50000"/>
</event>
<property name="all"/>
</log>
</config>
history="24" — хранить 24 часа. Длительность в фильтре задаётся в десятитысячных долях секунды: 10000 — это 1 секунда, 50000 — 5 секунд. Журнал быстро растёт: включайте его на время расследования и следите за местом на диске.
На что смотреть в первую очередь: процессы с памятью, близкой к лимиту; вызовы длиннее нескольких секунд; события EXCP с повторяющимся текстом. Три этих сигнала закрывают большую часть разборов.
Частые ошибки администрирования кластера
Ещё несколько ошибок, которые не дают явного сообщения, но портят жизнь:
- ❌ Сервер СУБД и сервер 1С без лимитов на одной машине. Они воюют за память, и под нагрузкой тормозит всё.
- ❌ Фоновые задания на том же процессе, что и пользователи. Ночной обмен затягивается до утра, бухгалтерия жалуется на скорость. Решение — ТНФ.
- ❌ Пароль администратора кластера знает один человек. Если он уволился и пароль утерян, не пересоздавайте кластер. Остановите службу, восстановите
srvinfoиз резервной копии или обратитесь к тому, кто администрирует сервер. - ❌ Второй сервер добавили, а уровень отказоустойчивости оставили 0. Нагрузка делится, но резервирования нет.
Любая остановка службы агента, ручное завершение rphost или перезапуск сервера обрывает сеансы пользователей. Делайте это вне рабочего времени или после рассылки предупреждения.
Частые вопросы
Можно ли включить файловую базу в кластер?
Сколько серверов нужно для отказоустойчивого кластера?
Нужен ли отдельный компьютер под кластер?
Где посмотреть, на каком сервере и процессе работает пользователь?
rac session list.