ragent, rmngr, rphost и radmin.dll: из чего состоит сервер 1С и как им управлять

· 9 мин

Содержание

Службу сервера 1С запускает файл ragent.exe: это агент сервера, он лежит в папке bin нужной версии платформы, например C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe. Агент сам поднимает менеджер кластера rmngr.exe и рабочие процессы rphost.exe. Консоль администрирования к службе отношения не имеет: это оснастка MMC, которая работает через библиотеку radmin.dll.

Частое заблуждение — искать «главный процесс» среди rphost. Их может быть несколько, они перезапускаются и меняют PID. Остановить или перезапустить сервер правильно только через службу, то есть через ragent. Убьёте rphost вручную — кластер поднимет новый, а пользователи этого процесса потеряют несохранённую работу.

Какие процессы работают в сервере 1С 8.3

Откройте диспетчер задач на сервере, вкладку «Подробности». У работающего сервера 1С вы увидите как минимум три вида процессов.

ФайлРольСколько экземпляровПорт по умолчанию
ragent.exeАгент сервера. Его запускает служба. Принимает первое подключение клиента и консолиОдин на службу1540
rmngr.exeМенеджер кластера. Хранит реестр кластера, распределяет сеансыОдин или несколько (по сервисам)1541
rphost.exeРабочий процесс. Выполняет серверный код конфигурации, запросы к СУБДОдин и большеиз диапазона 1560–1591
ras.exeСервер администрирования для racЗапускается отдельно1545

🔹 Клиент сначала стучится к агенту на 1540. Агент отдаёт адрес менеджера кластера (1541), а тот направляет соединение в конкретный рабочий процесс. Поэтому файрвол, открытый только на 1540, не даёт рабочего подключения.

🔹 rphost — главный потребитель памяти и процессора. Когда пользователи жалуются на тормоза, смотрят именно его.

🔹 Если rmngr.exe нет в списке, а ragent.exe есть — кластер не поднялся. Причину ищите в журнале событий Windows и в каталоге кластера (см. раздел о логах).

На одном сервере могут стоять несколько версий платформы. Каждая служба запускает ragent из своей папки bin. Чтобы понять, какая версия работает, смотрите путь к файлу в свойствах службы, а не ярлыки на рабочем столе.

Как служба запускает ragent: строка запуска

Откройте services.msc и найдите службу «Агент сервера 1С:Предприятия 8.3» (в английской версии имя содержит 1C:Enterprise 8.3 Server Agent). На вкладке «Общие» в поле «Исполняемый файл» видна полная строка. Типичный вид:

"C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Что означает каждый параметр:

  1. -srvc — агент работает как служба Windows.
  2. -agent — режим агента сервера.
  3. -port 1540 — порт агента.
  4. -regport 1541 — порт менеджера кластера; от него зависит имя папки reg_1541.
  5. -range 1560:1591 — диапазон портов для процессов кластера.
  6. -d — каталог служебных файлов кластера (srvinfo).
  7. -debug — разрешает отладку на сервере. В рабочей среде ключ лучше убрать: он открывает возможность подключения отладчика.

Если вы хотите запустить второй кластер на той же машине (например, для тестовой версии платформы), меняют порты и каталог: -port 2540 -regport 2541 -range 2560:2591 и отдельный -d.

Регистрация службы вручную

Служба создаётся установщиком. Если её удалили или нужно перенести на другую версию, зарегистрируйте её из командной строки администратора:

cd "C:\Program Files\1cv8\8.3.24.1691\bin"
ragent.exe -instsrvc -usr ".\USR1CV8" -pwd "Пароль" -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start

Удаление службы — ragent.exe -rmsrvc (перед этим ragent.exe -stop).

Остановка службы обрывает сеансы всех пользователей на этом сервере. Несохранённые документы пропадут, фоновые задания прервутся. Делайте это в нерабочее время и предупредите людей заранее.

Как это выглядит в Linux

В Linux исполняемые файлы те же, но без расширения: ragent, rmngr, rphost в каталоге /opt/1cv8/x86_64/<версия>/. В современных версиях платформы сервер управляется юнитом systemd, имя которого начинается с srv1cv8. Найти его можно так:

systemctl list-units --all | grep srv1cv8
ps -ef | grep -E 'ragent|rmngr|rphost'

Вторая команда покажет и строку запуска ragent с теми же ключами -port, -regport, -range, -d.

Консоль администрирования кластера: какой файл её открывает

Ярлык «Администрирование серверов 1С Предприятия» запускает файл 1CV8 Servers.msc. Это обычная оснастка MMC. Сама логика оснастки живёт в radmin.dll из папки bin той же версии платформы.

Отсюда главный приём практика. Если консоль открывается с ошибкой, пустая или не видит сервер, почти всегда проблема в регистрации radmin.dll:

  1. Закройте все окна MMC.
  2. Запустите командную строку от имени администратора.
  3. Зарегистрируйте библиотеку нужной версии:
regsvr32 "C:\Program Files\1cv8\8.3.24.1691\bin\radmin.dll"
  1. Откройте консоль заново.

Два нюанса, на которых теряют время:

  • 🧩 Версия. Консоль должна быть той же версии, что и сервер. Консоль 8.3.22 к серверу 8.3.24 подключится с ошибкой несовпадения версий. После обновления платформы на сервере перерегистрируйте radmin.dll из новой папки.
  • 🧩 Разрядность. 64-битную radmin.dll видит 64-битный mmc.exe, 32-битную — 32-битный. Если стоит только 64-битная платформа, а консоль запускается как 32-битная, оснастки не будет.

Что делать в самой консоли

После запуска добавьте центральный сервер: правой кнопкой по корневому узлу центральных серверов → «Создать» → «Центральный сервер 1С:Предприятия 8.3». Укажите имя компьютера и порт агента (1540).

Дальше дерево раскрывается так: сервер → «Кластеры» → кластер → «Информационные базы», «Рабочие процессы», «Рабочие серверы», «Администраторы». Из этого дерева чаще всего:

  • смотрят список сеансов и соединений базы;
  • добавляют новую информационную базу;
  • ставят блокировку начала сеансов перед обновлением;
  • смотрят, сколько памяти занимает каждый rphost.

Управление кластером из командной строки через rac

Консоль MMC есть только в Windows и требует прямого доступа к агенту. Для скриптов, Linux и удалённого администрирования используют пару ras + rac.

Шаг 1. Запустите сервер администрирования ras. Для разового запуска:

"C:\Program Files\1cv8\8.3.24.1691\bin\ras.exe" cluster --port=1545 localhost:1540

Чтобы ras работал постоянно, его регистрируют отдельной службой:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1691\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto DisplayName= "1C:Enterprise 8.3 Remote Server"

Пробелы после binPath=, start= и DisplayName= обязательны — так устроен синтаксис sc.

Шаг 2. Получите идентификатор кластера:

rac localhost:1545 cluster list

В выводе нужна строка cluster : <UUID>.

Шаг 3. Работайте с объектами кластера, подставляя UUID:

rac localhost:1545 infobase summary list --cluster=<UUID>
rac localhost:1545 session list --cluster=<UUID>
rac localhost:1545 session list --cluster=<UUID> --licenses
rac localhost:1545 process list --cluster=<UUID>
rac localhost:1545 server list --cluster=<UUID>

Если в кластере заведены администраторы, добавляйте --cluster-user=<имя> --cluster-pwd=<пароль>. Для остальных команд и параметров смотрите встроенную справку: rac help, rac session help.

Команда rac session terminate и завершение рабочего процесса обрывают работу пользователя без сохранения. Перед этим посмотрите session list, чтобы не выкинуть бухгалтера посреди закрытия месяца.

Лимиты рабочих процессов и параметры запуска

Агент стартует с параметрами из строки службы, а поведение рабочих процессов задаётся уже в консоли. Настройки разнесены по двум окнам.

Свойства кластера (правой кнопкой по кластеру → «Свойства»):

ПараметрЧто делаетОриентир
Интервал перезапускаПлановый перезапуск rphost раз в N секунд0 — выключено; 86400 — раз в сутки
Допустимый объём памятиПорог памяти процесса, после которого его начинают выводить из работыПо объёму ОЗУ и числу процессов
Интервал превышения допустимого объёма памятиСколько секунд процесс может держаться выше порога30–300 с

Свойства рабочего сервера («Рабочие серверы» → сервер → «Свойства»):

  • 📦 диапазон IP-портов рабочих процессов;
  • 📦 максимальный объём памяти всех рабочих процессов;
  • 📦 безопасный расход памяти за один вызов;
  • 📦 количество информационных баз и соединений на один процесс.

Пример расчёта. На сервере 32 ГБ ОЗУ, СУБД на другой машине, под систему оставляем 4 ГБ. Максимальный объём памяти рабочих процессов — около 28 ГБ. Если работают 4 процесса, порог одного — примерно 7 ГБ.

«Безопасный расход памяти за один вызов» спасает от одного тяжёлого отчёта, который съедает всю память. Вызов, превысивший порог, прерывается с ошибкой у этого пользователя, а остальные продолжают работать.

Перед изменением лимитов
Выполнено: 0 / 5

Логи сервера 1С и разбор сбоев

Сервер пишет информацию в несколько мест. Начинайте с простого.

1. Журнал событий Windows. Раздел «Приложение», источник с именем 1С. Сюда попадают падения агента, ошибки запуска службы, проблемы с лицензией.

2. Каталог кластера srvinfo. Внутри reg_1541 лежат:

  • 1CV8Clst.lst — реестр кластера: базы, рабочие серверы, администраторы, настройки;
  • папки с GUID — по одной на информационную базу, там журнал регистрации 1Cv8Log;
  • snccntx… — сеансовые данные, временный кэш сервера.

В корне srvinfo лежит 1cv8wsrv.lst — список кластеров и администраторов центрального сервера.

Скопируйте srvinfo целиком перед любыми изменениями в нём. Повреждённый 1CV8Clst.lst означает, что кластер «забудет» все базы. Удалять сеансовые данные можно только при остановленной службе, а значит, с отключением всех пользователей.

3. Технологический журнал. Самый подробный источник: запросы, исключения, блокировки, утечки памяти. Включается файлом logcfg.xml, который кладут в подкаталог conf каталога bin платформы. Минимальный пример — запись исключений и аварийных завершений процессов:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c_techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <event>
      <eq property="name" value="PROC"/>
    </event>
  </log>
  <dump create="true" location="D:\1c_dumps" type="3"/>
</config>

Параметр history — сколько часов хранить файлы. Журнал растёт быстро: держите его на отдельном диске и выключайте, когда разобрались.

Диагностика: выберите симптом

Безопасность сервера и сетевые порты

Сервер 1С по умолчанию открыт всем, кто достучится до порта 1540. Закройте три дыры.

Учётная запись службы. Установщик предлагает создать пользователя USR1CV8. Ему нужны право «Вход в качестве службы» и полный доступ к каталогу srvinfo. Права администратора Windows ему не нужны. Запуск службы от LocalSystem упрощает установку, но даёт процессам 1С лишние права на машине.

Администраторы кластера и центрального сервера. Пока список администраторов пуст, любой пользователь с консолью может удалить базу из кластера или завершить все сеансы . Заведите администратора кластера и администратора центрального сервера в консоли (узел «Администраторы»). Пароли храните в менеджере паролей.

Порты на файрволе. Открывайте только нужное и только для своих подсетей:

ПортКто использует
1540Агент сервера, консоль, клиенты
1541Менеджер кластера
1560–1591Рабочие процессы и сервисы кластера
1545ras, только для машин администраторов

Потеряли пароль администратора кластера? Не пересоздавайте кластер. Остановите службу в нерабочее время, восстановите 1CV8Clst.lst из резервной копии, сделанной до смены пароля, и запустите службу. Нет копии — обратитесь к администратору, который настраивал сервер.

Частые вопросы

Можно ли запустить сервер 1С без службы?
Да. Запустите ragent.exe из командной строки без ключа -srvc, с параметрами -port, -regport, -range, -d. Сервер работает, пока открыто окно. Для постоянной работы это неудобно, но подходит для проверки.
Почему в диспетчере задач несколько rphost.exe?
Кластер запускает несколько рабочих процессов для распределения нагрузки, а при перезапуске по памяти старый процесс какое-то время живёт рядом с новым. Это нормальное поведение.
Нужна ли консоль на самом сервере?
Нет. Консоль ставится на любую машину с компонентом администрирования той же версии платформы. Ей нужен сетевой доступ к порту 1540 сервера.
Где после обновления платформы взять новую строку запуска службы?
Установщик новой версии предлагает установить сервер как службу и меняет путь сам. Если служба осталась на старой версии, удалите её через ragent.exe -rmsrvc старой версии и зарегистрируйте заново из папки bin новой.
Чем rac отличается от консоли MMC?
Возможности похожи, но rac работает через ras и подходит для скриптов, планировщика и Linux. Консоль удобнее для разового просмотра сеансов и настроек.