Многие системные администраторы сталкиваются с ситуацией, когда при выполнении тяжелых операций на сервере 1С:Предприятие загрузка процессора остается низкой, несмотря на большое количество ядер. В данной статье мы разберем, почему так происходит, является ли это ошибкой и какие шаги можно предпринять для улучшения производительности вашей серверной инфраструктуры.
Первое и самое важное, что нужно уяснить: архитектура платформы 1С:Предприятие исторически ориентирована на последовательное выполнение кода. Внутри rphost (рабочего процесса) большинство операций, будь то проведение документа или сложный запрос, выполняются в рамках одного потока. Это значит, что для системы гораздо важнее высокая тактовая частота одного ядра, чем их огромное количество.
Если одна задача выполняется в рамках одного потока, она физически не может «задействовать» сразу 12 или 32 ядра. Она целиком загрузит только одно ядро, а остальные будут простаивать или заниматься фоновыми системными процессами. Именно поэтому вы видите загрузку процессора на уровне 25% при 4 ядрах или значительно меньше при 12-16 ядрах.
Если вы используете стандартную версию Сервер 1С:Предприятия (ПРОФ), необходимо учитывать встроенные программные ограничения. Платформа 1С в версии ПРОФ ограничивает использование аппаратных ресурсов: на один рабочий сервер доступно не более 12 ядер процессора. Даже если в вашем сервере установлено 64 ядра, стандартный сервер 1С просто не сможет эффективно распределить нагрузку на все имеющиеся мощности.
В этом случае решением является переход на уровень КОРП. Лицензии уровня КОРП снимают ограничение на использование ядер и позволяют гибко настраивать сервер для работы с большими объемами данных и большим количеством одновременных сеансов пользователей.
Чтобы заставить сервер работать эффективнее, разберем пошагово, что можно предпринять в рамках существующих настроек:
rphost. Каждый такой процесс — это отдельный поток, который может занять свое ядро. Проверьте настройки кластера и при необходимости увеличьте количество процессов, если оперативная память вашего сервера это позволяет.DBMSSQL или TLOCK. Это подскажет, что система ожидает ответа от базы данных или стоит в блокировках, что требует доработки самого алгоритма 1С.Попытка принудительно заставить 1С использовать все ядра процессора для одной задачи (например, для одного запроса) через программные методы практически невозможна без глубокой переработки конфигурации. Основной упор в оптимизации стоит делать на:
Таким образом, низкая загрузка процессора в большинстве случаев не является неисправностью. Это особенность работы платформы, требующая правильной настройки кластера серверов и, при необходимости, расширения функциональности до уровня КОРП для снятия аппаратных ограничений.