С сентября 2019 года компания «1С» ввела строгие технические ограничения для лицензий уровня ПРОФ. Одним из самых обсуждаемых лимитов стало ограничение на использование серверной мощностью: не более 12 ядер процессора и не более 500 сеансов. В этой статье мы подробно разберем, как именно платформа реализует эти ограничения, развеем мифы о «однопоточности» и научимся самостоятельно проверять, сколько ядер задействовано в работе вашего сервера.
Важно понимать, что ограничение в 12 ядер — это не просто юридическое условие, а жесткий программный алгоритм, встроенный в платформу 1С:Предприятие 8.3 (начиная с версии 8.3.15). Платформа реализует это через механизм CPU Affinity (маска соответствия). Когда служба сервера 1С запускает рабочие процессы rphost, она принудительно указывает операционной системе, на каких именно ядрах разрешено выполнять код этого процесса.
Рассмотрим ключевые особенности этого механизма:
rphost является многопоточным. Один процесс может использовать все 12 разрешенных ядер одновременно, если в нем выполняется достаточное количество клиентских запросов или фоновых заданий.Самый простой способ убедиться в работе ограничений — заглянуть в настройки соответствия процессоров. Рассмотрим по шагам, как это сделать в ОС Windows:
rphost.exe.Для более наглядной картины мы можем проанализировать фактическую утилизацию ресурсов. Разберем использование утилиты resmon.exe:
Запустите Монитор ресурсов и перейдите на вкладку ЦП. В правой части окна отображаются графики по каждому логическому ядру. В условиях высокой нагрузки на 1С (например, при запуске тяжелого отчета или группового перепроведения документов) проанализируем ситуацию:
Это прямое доказательство того, что платформа искусственно ограничивает вычислительную мощность, несмотря на наличие свободных ресурсов в системе.
Проанализируем сложную ситуацию, которая часто возникает на мощных двухпроцессорных серверах. Современные серверы используют архитектуру NUMA (Non-Uniform Memory Access), где каждый процессор имеет «свою» локальную оперативную память. Если на вашем сервере установлено два процессора по 12 ядер в каждом, лицензия ПРОФ задействует только первый процессор (первые 12 ядер).
Это создает риск снижения производительности: вся нагрузка 1С и все обращения к памяти будут идти через один физический процессор и один контроллер памяти, в то время как второй процессор будет простаивать. В таких случаях иногда выгоднее программно ограничить количество ядер в настройках виртуальной машины или BIOS, чтобы операционная система и 1С более оптимально распределяли ресурсы внутри доступного лимита.
Если вы хотите лично убедиться, что rphost может занимать более одного ядра (что он многопоточный), можно провести простой эксперимент. Разберем пример кода, который создает искусственную нагрузку. Если запустить этот код в нескольких разных сеансах (или через фоновые задания), вы увидите, что один процесс rphost начнет потреблять ресурсы нескольких ядер.
// Пример для проверки многопоточности (запускать в нескольких сеансах)
Процедура ТестНагрузкиПроцессора() Экспорт
КонецПериода = ТекущаяДата() + 60; // Работаем 60 секунд
Пока ТекущаяДата() < КонецПериода Цикл
// Пустой цикл для имитации математических вычислений
А = 1 + 1;
КонецЦикла;
КонецПроцедуры
При запуске 12 таких процедур одновременно (через консоль заданий или просто открыв 12 окон 1С), вы увидите в Мониторе ресурсов 100% загрузку всех 12 разрешенных ядер именно процессом rphost. Это окончательно опровергает теорию об однопоточности серверных вызовов в 1С.
Выясним причины, по которым ограничение в 12 ядер становится критичным и требует покупки лицензий КОРП:
rphost.Важное примечание: Если у вас в кластере менее 10 пользователей, платформа 1С автоматически включает функционал уровня КОРП (даже при наличии лицензий ПРОФ). Это сделано для удобства разработчиков и тестировщиков, чтобы они могли использовать расширенные функции на небольших базах без дополнительных затрат.
Таким образом, для эффективного администрирования сервера 1С на лицензиях ПРОФ необходимо четко понимать физические границы ваших ресурсов и контролировать их использование через системные утилиты Performance Monitor и Task Manager.