При администрировании кластера серверов «1С:Предприятие 8.2» и более поздних версий (8.3) технические специалисты часто сталкиваются с аномальным поведением рабочих процессов rphost.exe. Самая распространенная ситуация: в консоли администрирования добавляется новый рабочий процесс, его статус отображается как «Активен», но при этом флаг «Включен» снять или установить невозможно (он остается неактивным). Другой вариант этой же проблемы — процесс числится как «Включен», но статус «Активен» упорно показывает «Нет».
Обычно системные администраторы решают эту проблему радикально — полной перезагрузкой службы «Агент сервера 1С:Предприятия» (ragent) или всего физического сервера. Однако это приводит к аварийному завершению сеансов всех активных пользователей и прерыванию регламентных заданий. В рамках этой статьи мы подробно разберем внутреннюю логику работы кластера, выясним причины расхождения статусов и рассмотрим эффективные способы устранения неполадок без остановки работы всей системы.
Для начала проанализируем, что именно означают эти два флага в консоли администрирования кластера 1С, поскольку их часто путают:
rmngr). Если флаг установлен в значение «Да», это означает, что кластеру разрешено направлять в данный рабочий процесс новые клиентские подключения, сеансы и фоновые задания. Если «Нет» — процесс заблокирован для новых соединений.rphost.exe физически запущен на сервере, операционная система выделила ему PID (идентификатор процесса), и он обменивается данными с менеджером кластера. Значение «Нет» означает, что процесс в ОС не запущен или перестал отвечать на запросы менеджера.Рассмотрим детально две основные ситуации расхождения статусов, с которыми сталкиваются администраторы.
В большинстве случаев это штатное поведение системы, связанное с механизмом автоматического перезапуска (рециклинга) рабочих процессов. В настройках сервера 1С можно задать лимит потребления памяти на один процесс или интервал его перезапуска. Когда процесс достигает установленного лимита, кластер производит следующие действия:
rphost.exe со статусами «Включен: Да» и «Активен: Да». Все новые пользователи начинают подключаться к нему.0, выключенный процесс может висеть в памяти сервера бесконечно.Это классический аварийный сценарий (именно он часто описывается на форумах). Кластер рассчитывает использовать процесс, но сам исполняемый файл rphost.exe на уровне операционной системы запуститься не может. Выясним основные причины:
rphost.exe не сможет запуститься.USR1CV8), не имеет достаточных прав на чтение/запись в каталогах временных файлов или в папке хранения файлов кластера srvinfo.1CV8Clst.lst создается, но служба ragent не отправляет операционной системе команду на фактический запуск исполняемого файла.Перезапуск службы Агента 1С — самый простой, но наименее профессиональный метод, так как он прерывает работу пользователей. Рассмотрим более тонкие и безопасные методы решения проблемы по шагам.
Если рабочий процесс завис в неопределенном состоянии («активен, но не включен» или завис при выключении), его можно завершить на уровне операционной системы. Кластер спроектирован так, что при падении или принудительном закрытии одного rphost.exe менеджер кластера мгновенно и автоматически запускает новый аналогичный процесс взамен убитого.
Проанализируем эту процедуру:
rphost.exe, у которого идентификатор (PID) совпадает с полученным из консоли 1С.После этого менеджер кластера зафиксирует потерю процесса и автоматически инициализирует запуск нового чистого экземпляра rphost.exe с корректными статусами. Пользователи, находившиеся на зависшем процессе, будут автоматически перенаправлены на другие активные процессы без потери данных (при условии использования отказоустойчивого кластера).
Чтобы старые неиспользуемые процессы не накапливались в системе в статусе «Активен: Да, Включен: Нет», необходимо правильно настроить параметры автоматического завершения. Разберем, как это сделать:
0, что запрещает их автоматическое закрытие).1000 до 3600 секунд (от 15 минут до 1 часа). Этого времени вполне достаточно, чтобы активные пользователи завершили свои транзакции, после чего операционная система корректно завершит процесс.Если рабочие процессы создаются, но сразу переходят в статус «Активен: Нет», велика вероятность нехватки свободных сетевых портов. По умолчанию для рабочих процессов выделен диапазон 1560–1591 (всего 32 порта).
Выясним, как расширить этот диапазон:
1560-1691. Это даст кластеру больше пространства для маневра при динамическом выделении портов под новые процессы rphost.exe.В случаях, когда конфигурационные файлы кластера повреждены или забиты некорректными метаданными, процессы могут бесконечно зависать при попытке старта. Для исправления этой ситуации выполните очистку кэша сервера в технологическое окно:
C:\Program Files\1cv8\srvinfo\ или C:\ProgramData\1C\1cv8\).1CV8Clst.lst (или 1cv8wsrv.lst), так как в нем хранится список зарегистрированных баз данных и настройки кластера. Удалению подлежат вложенные папки вида snccntx* и временные файлы сессий.Применяя данные методы на практике, вы сможете поддерживать высокую доступность серверов «1С:Предприятие» и решать проблемы с зависанием рабочих процессов без создания неудобств для пользователей вашей организации.