К статье
Практический материал

Администрирование · 13 мин

Как запустить два агента сервера 1С на одном компьютере

Пошаговая инструкция по запуску двух агентов сервера 1С на одном компьютере: разные порты, каталоги srvinfo, службы Windows, проверка результата и типичные ошибки.

Один компьютер может обслуживать сразу несколько кластеров серверов 1С — например, рабочий и тестовый контур, либо кластеры разных версий платформы. Для этого на той же машине запускают второй экземпляр агента сервера 1С (ragent). Главное условие — у каждого агента должны быть собственные сетевые порты и собственный служебный каталог, иначе второй экземпляр просто не стартует или «перехватит» чужой кластер.

Типовая ситуация: на сервере уже работает агент первого кластера со стандартными портами 1540–1541 и диапазоном рабочих процессов 1560–1591. Второй агент настраивают на смещённые порты, например 2540–2541 и 2560–2591, и отдельный каталог вида C:\Program Files\1cv8\srvinfo2. После этого оба кластера живут независимо: у каждого свои базы, свои рабочие процессы и свои сеансы.

Ниже разобран порядок действий для Windows и Linux, различия сценариев «одна версия платформы» и «две версии», способы проверки результата и ошибки, которые чаще всего мешают запуску.

Когда нужен второй агент и как это работает

Агент сервера 1С (ragent) — это процесс, который управляет кластером: ведёт реестр кластера в каталоге srvinfo, распределяет соединения между рабочими процессами, хранит список информационных баз. Один агент обслуживает один кластер. Если нужен второй независимый кластер на той же машине — запускают второй ragent.

Типичные причины завести второй агент: разделение продуктивного и тестового контура без покупки отдельного сервера; параллельная работа двух версий платформы, когда часть баз ещё не переведена на новый релиз; изоляция ресурсоёмкого проекта, чтобы его рабочие процессы не конкурировали с основными. Ещё один вариант — отдельный кластер под интеграционные сервисы с особыми настройками безопасности.

Важно понимать ограничение: два агента на одной машине делят её ресурсы — процессор, оперативную память, диск. Если сервер и так загружен, второй кластер ухудшит работу обоих. Для продуктивных нагрузок с жёсткими требованиями к отзывчивости правильнее выносить кластеры на разные машины.

Что подготовить перед запуском

Перед настройкой убедитесь, что установлены нужные версии платформы 1С. Если планируются кластеры разных версий, обе версии ставятся на компьютер параллельно — установщики разных релизов не конфликтуют, так как разворачиваются в разные каталоги. Если версия одна, второй агент регистрируется из того же комплекта файлов, но с другими параметрами.

Заранее спланируйте схему портов и каталогов. Стандартные значения первого агента: порт агента 1540, порт реестра кластера 1541, диапазон портов рабочих процессов 1560–1591. Для второго агента удобно использовать смещение на 1000: 2540, 2541, 2560–2591. Такая схема наглядна и снижает риск случайного пересечения.

Порт агента (-port)Например, 1540 и 2540

По этому порту консоль кластера подключается к агенту

Порт реестра (-regport)Например, 1541 и 2541

Главный порт кластера, его указывают клиенты при подключении

Диапазон рабочих процессов (-range)Например, 1560:1591 и 2560:2591

Порты rphost, не должны пересекаться между агентами

Каталог srvinfo (-d)Например, srvinfo и srvinfo2

Реестр кластера, строго отдельный для каждого агента

Проверьте, что выбранные порты свободны. В Windows это делается командой netstat -ano | find "2540" и аналогично для остальных портов — если вывод пустой, порт никем не занят. Также убедитесь, что учётная запись, под которой будет работать служба, имеет полный доступ к новому каталогу srvinfo.

Запуск второго агента в Windows

В Windows первый агент обычно уже работает как служба «Агент сервера 1С:Предприятия». Второй агент регистрируют как отдельную службу командой sc create с явным указанием всех параметров запуска ragent.exe. Службу создают от имени администратора в командной строке.

cmd
sc create "1C:Enterprise 8.3 Server Agent (x86-64) Cluster2" binPath= "\"C:\Program Files\1cv8\8.3.22.1750\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\Program Files\1cv8\srvinfo2\"" start= auto obj= "NT SERVICE\1C_Server_Agent_2"

Обратите внимание на детали команды: путь к ragent.exe указывает на конкретную версию платформы — если нужен кластер другой версии, берите исполняемый файл из её каталога. Параметр -d задаёт новый каталог srvinfo2 — его не нужно создавать вручную, агент сделает это при первом запуске. Имя службы должно отличаться от имени службы первого агента.

Порядок запуска второго агента в Windows
  1. 1
    Убедитесь, что порты 2540, 2541 и диапазон 2560–2591 свободны (netstat)
  2. 2
    Зарегистрируйте службу командой sc create с параметрами -port 2540 -regport 2541 -range 2560:2591 -d <новый каталог>
  3. 3
    Запустите службу: sc start <имя службы>
  4. 4
    Откройте консоль управления серверами 1С и добавьте новый сервер с указанием порта 2540
  5. 5
    Создайте в консоли новый кластер на порту 2541 и добавьте в него рабочий сервер
  6. 6
    Проверьте, что в реестре кластера можно создать тестовую информационную базу

После создания службы откройте оснастку services.msc и проверьте, что новая служба запущена и стоит в режиме «Автоматически». Если служба не стартует, первым делом смотрите журнал событий Windows — чаще всего причина в занятом порте или отсутствии прав у учётной записи службы на каталог srvinfo2.

Запуск второго агента в Linux

В Linux агент сервера 1С обычно управляется через systemd. Для второго экземпляра создают копию юнит-файла с другим именем и изменёнными параметрами запуска. Юнит размещают в /etc/systemd/system/, например srv1cv8-cluster2.service.

ini
[Unit]
Description=1C:Enterprise 8.3 Server Agent (Cluster 2)
After=network.target

[Service]
Type=simple
User=usr1cv8
ExecStart=/opt/1cv8/x86_64/8.3.22.1750/ragent -daemon -port 2540 -regport 2541 -range 2560:2591 -d /var/lib/1cv8/srvinfo2
Restart=on-failure

[Install]
WantedBy=multi-user.target

Перед включением юнита создайте каталог /var/lib/1cv8/srvinfo2 и назначьте владельцем пользователя, под которым работает агент (обычно usr1cv8): chown -R usr1cv8:grp1cv8 /var/lib/1cv8/srvinfo2. Затем выполните systemctl daemon-reload, включите юнит командой systemctl enable --now srv1cv8-cluster2 и проверьте статус через systemctl status.

Если на сервере используется firewall (firewalld, ufw или iptables), откройте новые порты для клиентских подключений: 2541 для соединений клиентов с кластером и диапазон 2560–2591 для обращений к рабочим процессам. Без этого клиенты будут получать ошибку соединения, хотя сам агент работает исправно.

Одинаковые и разные версии платформы: в чём разница

Сценарий с одной версией платформы проще: обе службы ссылаются на один и тот же ragent.exe, различаются только порты и каталоги. Обновление платформы затрагивает оба кластера одновременно — после обновления обе службы продолжают работать уже на новом релизе. Это удобно для разделения тестового и рабочего контура на одной версии.

Сценарий с разными версиями требует внимательности к путям: служба второго кластера должна указывать на ragent.exe из каталога нужной версии. При обновлении одной из версий пересоздавать службу не нужно, если номер сборки не менялся; при переходе на новый релиз путь в параметрах службы придётся скорректировать — проще всего удалить и пересоздать службу с новым путём, реестр кластера в srvinfo2 при этом сохранится.

Сравнение сценариев

Два агента одной версии

Подходит для разделения рабочего и тестового контура. Проще в обслуживании, но оба кластера обновляются одновременно.

Два агента разных версий

Подходит для постепенной миграции баз на новый релиз. Требует следить за путями к ragent.exe каждой версии при обновлениях.

Отдельный физический сервер или ВМ

Подходит при высокой нагрузке: полная изоляция ресурсов, но выше затраты на оборудование и лицензии.

Проверка результата и подключение клиентов

После запуска второго агента проверьте его доступность через консоль управления серверами 1С (или консоль кластера): добавьте сервер, указав имя машины и порт 2540. Если агент отвечает, в консоли появится ветка с кластером на порту 2541. Отсутствие ответа означает, что служба не запущена, порт занят или закрыт брандмауэром.

Контрольные точки

Как проверить результат

Служба второго агента
Норма

Статус «Работает» / active (running)

Тревожный признак

Служба останавливается сразу после запуска — смотрите журнал событий

Прослушивание портов
Норма

netstat показывает LISTENING на 2540, 2541 и портах диапазона 2560–2591

Тревожный признак

Порты не прослушиваются или заняты другим процессом

Консоль кластера
Норма

Кластер на порту 2541 отображается, можно создать базу

Тревожный признак

Ошибка подключения к агенту или пустой список кластеров

Подключение клиента
Норма

Клиент подключается к базе по строке Srvr=server:2541

Тревожный признак

Ошибка соединения — проверяйте firewall и правильность порта

Клиентские приложения подключаются ко второму кластеру по строке вида Srvr="ИмяСервера:2541";Ref="ИмяБазы";. Порт реестра кластера указывается через двоеточие после имени сервера. Если порт не указать, клиент попытается подключиться к стандартному 1541 и попадёт в первый кластер — база там не найдётся, и пользователь получит ошибку «информационная база не обнаружена».

В файловых списках баз (.v8i) и в настройках веб-публикаций порт второго кластера указывается аналогично. Если базы публикуются на веб-сервере, убедитесь, что в файле default.vrd или в настройках публикации задан правильный порт кластера.

Типичные ошибки и ограничения

Типичные ошибки
01
Один каталог srvinfo на два агента — второй агент либо не стартует, либо повреждает реестр первого кластера; каталоги должны быть строго разными
02
Пересечение диапазонов портов рабочих процессов — рабочие процессы второго кластера не смогут запуститься, в журнале появятся ошибки занятости портов
03
Забытый порт в строке подключения клиента — пользователь попадает в первый кластер и видит ошибку «база не найдена»
04
Брандмауэр не настроен на новые порты — агент работает локально, но клиенты по сети подключиться не могут
05
Учётная запись службы без прав на каталог srvinfo2 — служба падает при старте с ошибкой доступа

Ещё одно ограничение касается производительности. Каждый кластер создаёт собственные рабочие процессы rphost, каждый из которых потребляет заметный объём оперативной памяти. На машине с небольшим объёмом ОЗУ два активных кластера могут привести к нехватке памяти и свопингу. Следите за суммарным потреблением и при необходимости ограничивайте количество рабочих процессов и объём памяти на процесс в свойствах кластера.

FAQ

Можно ли запустить три и более агентов на одном компьютере?

Да, ограничение только в ресурсах машины и свободных портах. Каждый следующий агент настраивается по той же схеме: уникальные порты, уникальный каталог srvinfo, отдельная служба или юнит. Удобно продолжать схему смещения портов — 3540/3541/3560–3591 для третьего кластера и так далее.

Что делать, если вторая служба создана, но не запускается?

Сначала проверьте журнал событий Windows или вывод journalctl -u в Linux — там указана причина. Чаще всего это занятый порт, отсутствие прав на каталог srvinfo2 или опечатка в пути к ragent.exe. Проверьте команду запуска, выполнив её вручную в командной строке без ключа -srvc: ошибка выведется непосредственно в консоль.

Как удалить второй агент, если он больше не нужен?

Остановите службу, затем удалите её командой sc delete с именем службы (в Windows) или отключите и удалите юнит-файл (в Linux). После этого можно удалить каталог srvinfo2 — вместе с ним удалится реестр кластера. Сами информационные базы на сервере СУБД при этом не удаляются.

Нужно ли перенастраивать существующий первый кластер?

Нет. Первый агент продолжает работать со своими стандартными портами и каталогом, его настройки не меняются. Все изменения касаются только второго экземпляра. Единственное исключение — firewall: если раньше правила были «разрешить всё локально», при появлении второго кластера стоит явно описать правила для обоих наборов портов.

Можно ли перенести базы из первого кластера во второй?

Да. Информационная база в кластере — это запись в реестре с указанием на базу данных в СУБД. Создайте во втором кластере новую информационную базу, указав ту же базу данных на сервере СУБД (существующую, без создания новой). Учтите, что одна база данных не должна одновременно активно использоваться двумя кластерами — это приведёт к конфликтам блокировок.

Влияет ли второй агент на работу первого?

На уровне настроек — нет, кластеры полностью независимы. На уровне ресурсов — да: оба делят процессор, память и дисковую подсистему одной машины. Если второй кластер планируется под нагрузкой, заранее оцените запас по оперативной памяти и настройте ограничения в свойствах обоих кластеров.

Итог

Что важно запомнить

Второй агент сервера 1С на одном компьютере — это отдельная служба с уникальными портами (-port, -regport, -range) и собственным каталогом srvinfo. После запуска кластер регистрируется в консоли на новом порту, а клиенты подключаются с явным указанием порта в строке соединения. Главные риски — общий каталог srvinfo, пересечение портов и нехватка памяти.