Ошибка параметров автоперезапуска рабочих процессов 1С (rphost): Утечки памяти
Архитектура кластера 1С и утечки памяти
Кластер серверов 1С:Предприятие 8 состоит из управляющих процессов (rmngr) и рабочих процессов (rphost). Рабочий процесс обслуживает сеансы пользователей, компилирует серверный код, формирует отчеты. Архитектурная проблема заключается в том, что неоптимальный код (например, цикличное создание COM-объектов, глобальные серверные переменные с тяжелыми таблицами, неэффективные запросы) приводит к утечкам оперативной памяти (Memory Leaks). rphost.exe начинает неограниченно потреблять RAM, вызывая жесткий свопинг (Page Faults) на диске, что приводит к зависанию всей системы. Бизнес-риски: полный отказ системы (Denial of Service), потери пользовательских сессий при падении процесса (out of memory).
Симптоматика деградации кластера
| Симптом (Мониторинг) | Влияние на пользователей |
|---|---|
| Потребление памяти rphost > 5-10 ГБ. | Замедление работы, зависание интерфейса (ожидание ответа сервера). |
| Спонтанный разрыв соединения с сервером. | Пользователь получает ошибку "Сеанс отсутствует или удален". Это значит процесс rphost упал (Crash). |
| Высокий CPU на rphost + сборка мусора. | Микрофризы при проведении документов (Платформа пытается освободить память встроенным Garbage Collector). |
Настройка отказоустойчивости кластера (Автоперезапуск)
Сценарий 1: Настройка параметров рабочего сервера (Через Консоль кластера)
Платформа 1С имеет встроенный механизм превентивного уничтожения "разбухших" процессов и создания новых (без обрыва сеансов).
- Откройте утилиту Администрирование серверов 1С:Предприятия.
- Разверните: Кластеры -> [Ваш Кластер] -> Рабочие серверы -> Свойства рабочего сервера.
- Настройте параметры (пример для сервера с 32 ГБ ОЗУ):
- Безопасный расход памяти за один вызов:
0(не ограничивать, чтобы не ломать тяжелые отчеты). - Объем памяти рабочих процессов, до которого сервер считается производительным:
0. - Максимальный объем памяти рабочих процессов:
25000(25 ГБ, оставляем ОС и SQL). При превышении, сервер перестанет пускать новые сеансы на этот rphost.
- Безопасный расход памяти за один вызов:
Сценарий 2: Настройка параметров кластера (Свойства самого Кластера)
Здесь настраивается логика перезапуска.
- Интервал перезапуска рабочих процессов (сек):
86400(1 раз в сутки, ночью). Rphost выключается, сеансы плавно переводятся на новый. - Допустимый объем памяти (Кб):
4194304(4 ГБ на один rphost). Если процесс сожрет больше 4 ГБ в течение времени, указанного ниже, он будет убит. - Интервал превышения допустимого объема памяти (сек):
300(5 минут). Защита от пиковых всплесков при тяжелых отчетах, чтобы не убивать процесс мгновенно. - Выключенные процессы останавливать через (сек):
60.
Типовые ошибки администраторов
- Жесткое обрезание по вызову: Установка "Безопасного расхода за один вызов" в 1-2 ГБ приведет к тому, что при формировании ОСВ за год процесс будет падать с ошибкой "Недостаточно свободной памяти на сервере 1С", хотя физической памяти полно.
Настройки кластера лечат симптомы, а не причину. Аналитики ITSTM соберут технологический журнал (ТЖ) 1С, настроят сбор дампов памяти (Procdump) и найдут конкретную строку кода в конфигурации, которая вызывает утечку, стабилизировав вашу ERP-систему.
Частые вопросы (FAQ)
Что произойдет с пользователем во время перезапуска rphost?
Если перезапуск плановый (по интервалу), 1С запустит новый rphost параллельно старому. Сеансы (контекст сессий) будут аккуратно сериализованы и переданы в новый процесс. Пользователь ничего не заметит, максимум — небольшую задержку в 1-2 секунды.
Почему при достижении 'Допустимого объема памяти' сеансы рвутся?
Аварийное превышение памяти (настроенное в свойствах кластера) инициирует жесткое завершение процесса, если он удерживает этот объем дольше заданного интервала (300 сек). Сеансы не успевают мигрировать и обрываются.
Сколько rphost должно быть на сервере?
В современных версиях платформы (8.3.15+) рекомендуется оставлять настройку количества ИБ на процесс равной 8, а количество соединений — 256. 1С сама будет плодить rphost'ы по мере роста нагрузки. Ручное ограничение часто вредит.
Помогает ли перезапуск службы Агента 1С (SrvcHost)?
Перезапуск службы полностью убивает rmngr и все rphost. Это гарантированно очистит память, но также 100% разорвет все сессии всех пользователей, откатит несохраненные транзакции и обнулит кэши сервера. Делать это днем критически запрещено.