Разберем распространенную проблему администрирования кластера серверов 1С:Предприятие 8.3, когда рабочий процесс rphost.exe потребляет 3.5–3.7 Гб оперативной памяти, после чего информационная база перестает принимать новые подключения и становится недоступной для пользователей.
Выясним причину такого поведения, проанализируем отличия архитектуры платформы 8.3 от 8.2 и подробно рассмотрим все способы разделения процессов и ограничения потребления ресурсов.
Проанализируем природу этого ограничения. Поведение характерно для 32-разрядного сервера 1С:Предприятия (x86), работающего под управлением 64-разрядной операционной системы. Теоретический адресный предел 32-битного процесса в 64-битной Windows составляет 4 Гб. Однако на практике из-за сильной фрагментации адресного пространства процесс не может выделить непрерывный блок памяти уже при достижении 3.5–3.7 Гб, что вызывает критические ошибки нехватки памяти (Out of Memory) и зависание базы данных.
В отличие от платформы 1С 8.2, где администратор мог вручную добавить требуемое количество рабочих процессов через консоль кластера, в версии 8.3 реализовано автоматическое управление процессами. Создать процесс напрямую вручную нельзя — кластер серверов запускает их динамически на основе установленных правил и порогов нагрузки.
Рассмотрим алгоритм, по которому кластер определяет необходимость запуска нового процесса:
rphost.exe.Разберем практические шаги для принудительного разделения нагрузки на несколько процессов rphost.
Способ 1. Уменьшение лимитов в свойствах рабочего сервера
Откроем консоль администрирования кластера серверов 1С и перейдем в свойства рабочего сервера:
1. В этом случае каждая информационная база гарантированно будет обслуживаться собственным рабочим процессом, что исключит взаимное влияние баз друг на друга.10–15 соединений, то при превышении этого порога кластер будет вынужден запустить дополнительный процесс rphost для обслуживания новых пользователей той же базы.Способ 2. Настройка требований назначения функциональности (ТНФ)
Используем встроенный механизм ТНФ для изоляции баз и сервисов:
rphost.Рассмотрим параметры защиты кластера серверов от переполнения памяти, задаваемые в свойствах самого кластера:
Разберем системные методы, позволяющие полностью избавиться от падений процессов из-за нехватки памяти:
rphost не имеет 4-гигабайтного ограничения и может адресовать весь физический объем RAM, установленный на сервере.1640, 1641, 1660:1691). Это позволит разнести проблемную базу в отдельный изолированный экземпляр сервера со своим адресным пространством.Выгрузить() на порционную обработку выборки, проверим корректность завершения COM-объектов и внешних компонент.