Автоматический перезапуск рабочих процессов (rphost) кластера 1С

20.01.23

Администрирование - Сервера

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
1C RpHost Manager win-x64
.zip 869,09Kb
13 6 200 руб. Купить
1C RpHost Manager win-x86
.zip 857,75Kb
1 6 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Исходный код разработки на GitHub

Поддерживаемая версия платформы 1С: 8.3.15 и выше.

Рабочий процесс (rphost) 1С иногда может потреблять большое количество оперативной памяти. Это может происходить по разным причинам. Главная проблема при этом заключается в том, что может происходить фрагментация памяти рабочего процесса или её перерасход, так называемая утечка памяти. Следствием этого может являться деградация производительности всего кластера 1С в целом и данного рабочего процесса в частности.

Средства управления кластером 1С не позволяют настраивать перезапуск одного рабочего процесса в случае превышения им установленного лимита памяти. Данная разработка призвана решить именно эту конкретную задачу.

В случае превышения установленного лимита расхода  памяти на один рабочий процесс служба rphost-manager регулирует свойство TemporaryAllowedProcessesTotalMemory (временно допустимый объём памяти всех рабочих  процессов)   соответствующего рабочего сервера таким образом, чтобы менеджер кластера 1С начал перезапуск его rphost'ов штатными средствами. После перезапуска служба rphost-manager возвращает эти настройки к исходным значениям.

 

Установка службы rphost-manager

  1. Установить .NET Core 3.1.
  2. Установить COMConnector 1C, выполнив команду от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.15.1778\bin\comcntr.dll"
  1. Распаковать содержимое установочного архива в любой каталог.
  2. Установить сервис Windows, выполнив команду от имени администратора:
sc create "1C RpHost Manager" binPath="D:\RphostManager\rphost-manager.exe"

 

Описание настроек службы rphost-manager

  • LogSize - размер лога программы в байтах. По достижению этого лимита файл лога перезаписывается.
  • CLSID - идентификатор COM объекта "V83.COMConnector". Данная настройка используется только в том случае, если она заполнена. В противном случае используется ProgID "V83.COMConnector".
  • InspectionPeriodicity - периодичность инспекции объёма памяти, используемого rphost'ами, в секундах.
  • ServerAddress - адрес центрального сервера 1С.
  • UserName - имя пользователя для подключения к кластеру 1С.
  • Password - пароль пользователя для подключения к кластеру 1С.
  • WorkingServerResetWaitTime - период ожидания переключения rphost'ов менеджером кластера 1С в нерабочее состояние в секундах.
  • WorkingProcessMemoryLimit - лимит памяти для одного rphost'а в килобайтах. Используется только в том случае, если не определён список индивидуальных настроек для рабочих серверов WorkingServerMemoryLimits.
  • WorkingServerMemoryLimits - список рабочих серверов 1С, которые нужно инспектировать, и лимит памяти rphost'а для каждого сервера в отдельности. Если список пустой, то инспектируются все сервера кластера, а в качестве лимита памяти rphost'а используется настройка WorkingProcessMemoryLimit. Если сервер не указан, то его инспекция не производится.

 

Пример настройки для всех рабочих серверов кластера 1С

Лимит памяти для одного рабочего процесса для всех рабочих серверов установлен на уровне 4 Gb

{
  "LogSize": 131072,
  "CLSID": "",
  "InspectionPeriodicity": 180,
  "ServerAddress": "tcp://MSK01:1540",
  "UserName": "",
  "Password": "",
  "WorkingServerResetWaitTime": 10,
  "WorkingProcessMemoryLimit": 4194304,
  "WorkingServerMemoryLimits": {},
  "HostOptions": {
    "ShutdownTimeout": "00:00:30"
  }
}

 

Пример индивидуальной для рабочих серверов настройки

Для сервера MSK01-SRV01 установлен лимит памяти одного рабочего процесса на уровне 1 Gb

Для сервера MSK01-SRV02 установлен лимит памяти одного рабочего процесса на уровне 2 Gb

Настройка WorkingProcessMemoryLimit игнорируется.

Важно: имена серверов указываются так, как они отображаются в консоли управления кластером 1С.

{
  "LogSize": 262144,
  "CLSID": "181E893D-73A4-4722-B61D-D604B3D67D47",
  "InspectionPeriodicity": 300,
  "ServerAddress": "tcp://MSK01:1540",
  "UserName": "",
  "Password": "",
  "WorkingServerResetWaitTime": 10,
  "WorkingProcessMemoryLimit": 2097152,
  "WorkingServerMemoryLimits": {
    "MSK01-SRV01": 1048576,
    "MSK01-SRV02": 2097152
  },
  "HostOptions": {
    "ShutdownTimeout": "00:00:30"
  }
}

 

Разработка прошла опытно-промышленную эксплуатацию на кластере из 4-х рабочих серверов 1С. Показала себя успешно. Иногда используется для ситуативного перезапуска какого-нибудь одного "распухшего" рабочего процесса.

Вступайте в нашу телеграмм-группу Инфостарт

rphost

См. также

Информационная безопасность Удаленное управление Сервера Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Один запуск на сервере, где работают 1С и СУБД, и видно, какие двери открыты: RDP и подбор паролей, пароли и учётки Windows, порты, папки с бэкапами и паролями, SQL Server, обновления и антивирус. 34 проверки с вердиктом, отчёт в Markdown для нейросети и HTML, обработка 1С для чтения отчёта. К мерам приложены восемь скриптов исправления с пробным режимом и откатом.

10 стартмани

09.11.2026    456    5    nedomolkov.ivan    0    

9

Мониторинг Сервера Системный администратор 1С 8.3 Бесплатно (free)

Шесть блоков технического отчёта по кластеру 1С: площадка, процессы, нагрузка, диск, копии, журналы за названный период — и открытые вопросы. Цифры из двух реальных прогонов на Windows Server 2019 (srvinfo 119 ГБ, 444 бэкапа и ни одного по нужной базе, висящий сеанс с лицензией). Что собирать, чего не делать, и где агент ошибся.

02.11.2026    352    netbka    1    

1

Нейросети Сервера Бесплатно (free)

Работаю с MacBook, а виртуалки, сервисы и локальные модели запускаю на домашнем сервере с Proxmox. Рассказываю, как устроено моё облако и как нейросети помогли его собрать.

25.10.2026    882    RockRock    20    

8

HighLoad оптимизация Технологический журнал Сервера Запросы Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Составной отчет формировался 15 минут. Вместо перебора разделов одна команда rac показала, что сеанс занят запросом к СУБД, а временный техжурнал с порогом 20 секунд за один прогон назвал виновника: один SQL на 240 секунд и точную строку модуля. В статье четыре разные картины «висит» и как их различить: идет запрос в СУБД, клиент ждет невидимое модальное окно, зомби-вызов после закрытого клиента, зависшее фоновое задание. Пример logcfg.xml, разбор события DBMSSQL с полем Context, замер пакета запросов по временным таблицам, регламентное задание, которое «выполнено», а данные стоят, и шпаргалка по диагностике.

16.10.2026    1107    Konstmax13    6    

2

Архивирование (backup) Инструменты администратора БД Администрирование СУБД Сервера Системный администратор 1C:Бухгалтерия 1С:Предприятие 8. Транспортная логистика, экспедирование и управление автотранспортом КОРП 1C:ERP 1С:ЗУП 1С:УНФ 1С:Розница Отраслевые Россия Бесплатно (free)

Кроссплатформенная утилита на Go-lang для резервного копирования информационных баз 1С:Предприятие. Основная задача программы — выгрузка информационных баз 1С в файлы *.dt с автоматическим удалением устаревших копий.

15.10.2026    446    33    bigboy    0    

0

Сервера Системный администратор 1С 8.5 1С:Управление торговлей 11 Россия Бесплатно (free)

Когда запускается новейший 16-ядерный флагман AMD Ryzen 9 9950X (микроархитектура Zen 5 с паспортным бустом до 5.7 ГГц), скоростные накопители NVMe PCIe 5.0 x4 и быстрый комплект DDR5, подсознательно ждешь феноменальных результатов «из коробки». Мы развернули монолитный вычислительный комплекс «All-in-One» (сервер приложений «1С:Предприятие 8.5.1» + СУБД Microsoft SQL Server 2022 Enterprise на Windows Server 2025) внутри гипервизора Proxmox VE 9.2. Запускаем однопоточный синтетический тест Гилёва (TPC-1C) и видим на экране холодный душ: 35.46 балла. Ниже — детальная хроника инженерного расследования, в ходе которого мы шаг за шагом сняли скрытые инфраструктурные барьеры на каждом слое системы (BIOS, гипервизор KVM, ядро Windows, СУБД, платформа 1С) и разогнали сервер с 35.46 до 79.37 баллов (+123.8% чистой скорости проведения документов), сделав виртуальную машину абсолютным лидером среди KVM-систем в глобальном датасете 1С 8.5.1.

15.10.2026    2390    YA_93013054    18    

20

Технологический журнал Сервера EDT Обновление 1С Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Конфигуратор и агент EDT тихо вылетают на 0 % «Обработки структуры базы данных», EDT пишет «Потеряно соединение с агентом конфигуратора», а модель проекта при этом чистая. Разбор двух аварий на большой серверной базе БП КОРП: какие факты снимать (журнал Windows, техжурнал нужной версии, хвост лога процесса), почему инкрементальная выгрузка EDT ломается после сбоев, как довести обновление пакетно через /UpdateDBCfg -Server, как опознать свои rphost среди нескольких кластеров и снять агент EDT, который сам поднимается и держит базу. Протокол одного дня по минутам и порядок диагностики из восьми шагов.

15.10.2026    487    Konstmax13    0    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1198184 28.01.23 19:10 Сейчас в теме
Добрый всем день, вечер :)

Коллеги, а кто-то пользовался этой утилитой?

Я хотел поставить на два сервера - на одном без проблем встала и отлично работает. А вот на втором затык с COM+ объектами...
Не могу решить...
В логах вот такая ошибка:

[дата-время] V83.COMConnector initialized successfully.
[дата-время] Connecting tcp://192.168.2.254:1540 ...
[дата-время] Failed to connect tcp://192.168.2.254:1540.
Library not registered. (0x8002801D (TYPE_E_LIBNOTREGISTERED))
[дата-время] Connecting tcp://192.168.2.254:1540 ...
[дата-время] Failed to connect tcp://192.168.2.254:1540.
Library not registered. (0x8002801D (TYPE_E_LIBNOTREGISTERED))
[дата-время] Connecting tcp://192.168.2.254:1540 ...
[дата-время] Failed to connect tcp://192.168.2.254:1540.
Library not registered. (0x8002801D (TYPE_E_LIBNOTREGISTERED))

и так до бесконечности...

как понять какая библиотека ругается или как починить?
6. nedomolkov.ivan 529 02.09.26 08:22 Сейчас в теме
(1) (5) Обе ошибки не про кластер, а про регистрацию COM-коннектора, и лечатся по-разному.

0x8002801D Library not registered значит, что V83.COMConnector не зарегистрирован или в реестре стоит путь к каталогу снесённой версии. Регистрация одна на машину, сколько бы платформ ни стояло. У меня их пять, а в CLSID {181E893D-73A4-4722-B61D-D604B3D67D47}, ветка InprocServer32, записан ровно один comcntr.dll. От той версии, что ставили последней. После обновления платформы перерегистрировать: regsvr32 на comcntr.dll из bin нужной версии.

0x8000401A это уже не библиотека, а идентификация. Так отвечает DCOM, когда у коннектора задан AppID с конкретной учёткой, а у неё сменился пароль. Смотреть dcomcnfg, свойства 1CV83 COM Connector, вкладка Идентификация, и заодно под какой учёткой запускается сама задача. У чистой регистрации AppID у класса нет вообще, тогда объект поднимается внутри процесса и такой ошибки не бывает.

А если хочется не перезапускать вслепую, а увидеть, какой процесс и по чьей вине пухнет, я собирал разбор по данным RAS: https://infostart.ru/1c/tools/2771629/
2. swenzik 16.05.23 14:22 Сейчас в теме
Соединение = Новый COMОбъект("V83.COMConnector");   
Агент=Соединение.ConnectAgent("localhost:1540");
Кластеры = Агент.GetClusters();
Кластер = Кластеры.GetValue(0);
Агент.Authenticate(Кластер,"","");
РабочиеПроцессы  = Агент.GetWorkingProcesses(Кластер);
РабочиеСерверы =  Агент.GetWorkingServers(Кластер);
РабочийСервер=РабочиеСерверы.GetValue(0);
//МассивСессий = Агент.GetSessions(Кластер).Выгрузить();

ОбщийРасходПамяти=0;
МаксимальныйПроцесс=0;
Для каждого Процесс из РабочиеПроцессы цикл
	ОбщийРасходПамяти=ОбщийРасходПамяти+Процесс.MemorySize;
	Если Процесс.IsEnable тогда
		МаксимальныйПроцесс=МАКС(МаксимальныйПроцесс,Процесс.MemorySize);
	КонецЕсли;
КонецЦикла;

Если МаксимальныйПроцесс>1024*1024*30 тогда
	РабочийСервер.TemporaryAllowedProcessesTotalMemory  = ОбщийРасходПамяти*1024;
	Агент.UpdateWorkingServer(Кластер,РабочийСервер);
	ЗапуститьПриложение("Timeout /T 5 /NoBreak",,Истина);
	РабочийСервер.TemporaryAllowedProcessesTotalMemory  = 0;
	Агент.UpdateWorkingServer(Кластер,РабочийСервер);
КонецЕсли;
Показать
sanfoto; smit1c; +2 – Ответить
3. swenzik 16.05.23 15:42 Сейчас в теме
и кстати TemporaryAllowedProcessesTotalMemory не режет рпхосты, якобы оно что-то помечает непроизводительным и перестаёт навешивать новые соединения. а вот при превышении CriticalProcessesTotalMemory оно выбирает из всех рпхостов самый жирный и прибивает его. так что в предыдущем комментарии надо поменять две строки кода
4. ybatiaev 59 20.12.23 15:24 Сейчас в теме
(3) Доброго дня! Поменять какие строчки? Можете текст итоговый тут разместить?
Заранее спасибо!
5. vano6666 05.07.25 12:57 Сейчас в теме
Приветствую, очень большое спасибо за Ваше решение !

Сильно выручает )

На одном из кластеров ( на версии платформы 8.3.27.1606) начали ловить такую ошибку

[2025-07-05 08:32:56] Start to reset working processes on working server srv1c-03 ...
[2025-07-05 08:32:56] Current memory limit = 0 Kb, current time limit = 300 seconds.
[2025-07-05 08:32:57] New memory limit = 1887814 Kb, new time limit = 1 second.
[2025-07-05 08:32:57] Waiting 10 seconds for the new settings to take effect ...
[2025-07-05 08:33:07] Restored memory limit = 0 Kb, restored time limit = 300 seconds.
[2025-07-05 08:33:07] Reset of working processes on working server srv1c-03 is finished.
[2025-07-05 08:33:07] Inspection of cluster [srv1c-03+srv1c-01] on tcp://srv1c-03:1540 is finished.
[2025-07-05 08:38:07] Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 8000401a Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. (0x8000401A).
[2025-07-05 08:43:07] Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 8000401a Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. (0x8000401A).
[2025-07-05 08:48:07] Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 8000401a Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. (0x8000401A).
[2025-07-05 08:53:07] Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 8000401a Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. (0x8000401A).
[2025-07-05 08:58:07] Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 8000401a Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. (0x8000401A).

[2025-07-05 09:03:07] V83.COMConnector initialized successfully.
[2025-07-05 09:03:07] Connecting tcp://srv1c-03:1540 ...
[2025-07-05 09:03:07] Connected tcp://srv1c-03:1540 successfully.
[2025-07-05 09:03:07] Inspecting cluster [srv1c-03+srv1c-01] on tcp://srv1c-03:1540 ...
[2025-07-05 09:03:07] Authenticating with [srv1c-03+srv1c-01] ...
[2025-07-05 09:03:07] Authenticated with [srv1c-03+srv1c-01] successfully. [2025-07-05 09:03:07] srv1c-03, PID 36680 (15204332 Kb) exceeds memory limit of 10485760 Kb. [2025-07-05 09:03:07] List of working servers to be reset: srv1c-03

кручу верчу - уже перелопатил много чего - не могу понять

успешно работало до версии платформы 8.3.24 - потом что то произошло и начал валить вот такие ошибки

причем иногда как в примере. - 4-5 вывалит потом вроде как дальше работает

а иногда подряд, прям подряд дает ошибку и все. - помогает перезапуск - после перезапуска какое то время работает

1-2 часа - потом повторяется

Вопрос : не сталкивались ? возможно решали эту проблему ?
Для отправки сообщения требуется регистрация/авторизация