Современные десктопные и серверные процессоры (особенно линейки Intel Core 12-го поколения и выше) перешли на гибридную архитектуру. Внутри одного процессора теперь соседствуют мощные производительные ядра (P-cores) и энергоэффективные ядра (E-cores). Для обычного пользователя это благо, но для высоконагруженного сервера 1С такая архитектура может стать источником серьезных проблем с производительностью. Проанализируем, почему это происходит и как правильно настроить систему.
Выясним причину, по которой 1С начинает «тормозить». Платформа 1С, а именно рабочий процесс rphost, выполняет тяжелые вычислительные задачи, которые критичны к скорости одного потока. Планировщик Windows (особенно старых версий) или гипервизор виртуализации может ошибочно классифицировать rphost как фоновую задачу и отправить её выполнение на E-ядра. Энергоэффективные ядра имеют значительно меньшую частоту и другую архитектуру, что приводит к замедлению выполнения кода 1С в 2–4 раза.
Рассмотрим подробнее механизмы, влияющие на распределение нагрузки:
Первым делом разберем, как помочь планировщику Windows правильно приоритизировать задачи сервера. Нам необходимо явно указать системе, что фоновые службы (к которым относится сервер 1С и СУБД) являются приоритетными.
Для этого выполним следующие шаги:
Это действие заставляет планировщик выделять более длинные кванты времени для потоков служб, что снижает вероятность их постоянной миграции между ядрами и случайного сброса на E-cores.
Если штатные средства ОС не справляются, проанализируем ситуацию с использованием специализированного софта. Программы типа CoreDirector или Process Lasso позволяют жестко закрепить процессы 1С за конкретными ядрами.
Рассмотрим работу с Process Lasso. Это мощный инструмент, который позволяет на лету изменять CPU Affinity (соответствие процессоров). Мы можем создать правило, согласно которому процессы rphost.exe и sqlservr.exe никогда не будут использовать энергоэффективные ядра. При этом важно анализировать SQL сервер глазами 1С-ника, чтобы понимать влияние таких настроек на работу СУБД.
Посмотрим на пример логики, которую можно реализовать через скрипты или командную строку, если вы хотите автоматизировать закрепление ядер без графического интерфейса:
# Пример на PowerShell для закрепления процесса rphost за первыми 8 ядрами (предположим, это P-cores)
$Process = Get-Process rphost
$Process.ProcessorAffinity = 0xFF # Битовая маска для первых 8 ядер
Важно помнить, что использование CPU Sets (доступно в Process Lasso) предпочтительнее простого Affinity, так как это «мягкое» ограничение, которое не вызывает конфликтов с самой операционной системой при распределении критически важных системных прерываний.
Если ваш сервер 1С развернут в виртуальной среде, проблема усугубляется. Гипервизор должен понимать топологию физического процессора. Разберем основные моменты для администраторов виртуальных сред:
VMware vSphere: Настоятельно рекомендуется использовать версию 8.0 и выше. В ней появилась полноценная поддержка гибридных ядер. Для критичных виртуальных машин с 1С следует активировать параметр High Latency Sensitivity. Это позволит зарезервировать физические P-ядра за виртуальной машиной и минимизировать задержки переключения.
Hyper-V: Убедитесь, что хостовая ОС — это Windows Server 2022. В настройках виртуальной машины стоит избегать переподписки ядер (overcommit), чтобы гипервизору не приходилось задействовать E-ядра для компенсации нехватки ресурсов.
Выясним самый надежный метод для тех, кому не важна экономия электроэнергии на сервере. Это полное отключение E-ядер в настройках материнской платы (BIOS/UEFI).
Проанализируем преимущества этого подхода:
AVX-512 на производительных ядрах, что может быть полезно для современных версий SQL-серверов.Рассмотрим подробнее, почему миграция потока с P-ядра на E-ядро так губительна для 1С. Кроме разницы в частоте, существует проблема Latency (задержек). У P-ядер и E-ядер разные объемы кэш-памяти L1 и L2. При переброске процесса данные из кэша одного ядра должны быть сброшены и считаны другим ядром. Для 1С, которая постоянно работает с оперативной памятью и объектным кэшем, эти микрозадержки суммируются, превращаясь в ощутимые «фризы» для пользователя.
Рекомендация: Если вы используете современный десктопный процессор (например, Core i9-14900K) под сервер 1С, лучшим решением будет отключение E-ядер в BIOS и фиксация частоты P-ядер на стабильном максимуме. Это превратит «игровой» процессор в мощный «серверный» «движок» с предсказуемой производительностью в каждом потоке.