Как добиться максимальной производительности i9-12900K при работе с 1С и MS SQL Server?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе на современное железо, такое как процессоры Intel 12-го поколения (архитектура Alder Lake), многие системные администраторы сталкиваются с парадоксальной ситуацией: в файловом режиме база 1С демонстрирует выдающиеся результаты (свыше 140-150 «попугаев» по тесту Гилева), однако при переходе на клиент-серверный вариант (MS SQL Server) производительность резко падает до 40-45 единиц. В рамках данной статьи мы подробно разберем, как правильно настроить связку i9-12900K, DDR5 и MS SQL Server, чтобы получить адекватную отдачу от вложенных средств.

Анализ проблемы планировщика Windows и гибридной архитектуры

Процессоры семейства Alder Lake используют гибридную архитектуру, состоящую из производительных P-ядер и энергоэффективных E-ядер. Проанализируем ситуацию: операционная система Windows Server 2019 была выпущена задолго до появления технологии Intel Thread Director. Это означает, что планировщик задач старой серверной ОС не умеет эффективно распределять нагрузку между ядрами. В результате критически важные потоки 1С и SQL Server могут оказываться на медленных E-ядрах.

Первым делом рассмотрим аппаратное решение этой проблемы:

  1. Зайдем в BIOS материнской платы и полностью отключим E-cores. Для сервера 1С, где важна максимальная частота на один поток, это даст более предсказуемый результат.
  2. Перейдем на Windows Server 2022 или Windows 11. Эти системы содержат обновленное ядро, которое корректно взаимодействует с топологией современных процессоров Intel.

Тонкая настройка электропитания и BIOS

Стандартной установки режима «Максимальная производительность» в панели управления Windows часто бывает недостаточно. Выясним причину: современные процессоры крайне агрессивно используют технологии энергосбережения, уходя в глубокие состояния сна (C-states) за миллисекунды простоя. Для 1С, работа которой состоит из множества мелких и быстрых запросов, задержки на «пробуждение» процессора губительны.

Разберем необходимые настройки BIOS:

Настройка взаимодействия 1С и SQL через Shared Memory

Одной из самых частых причин низкой производительности в тесте Гилева является использование сетевого протокола TCP/IP для взаимодействия сервера 1С и SQL Server, даже если они установлены на одном физическом сервере. Проанализируем ситуацию с помощью SQL-запроса.

Выполним следующий скрипт в SQL Server Management Studio (SSMS), чтобы проверить тип соединения:


select program_name, net_transport 
from sys.dm_exec_sessions as t1 
left join sys.dm_exec_connections AS t2 
ON t1.session_id=t2.session_id 
where not t1.program_name is null

Если в колонке net_transport вы видите что-либо отличное от Shared memory для процессов 1С, значит, данные гоняются через сетевой стек, что вносит огромные задержки. Рассмотрим, как это исправить:

  1. Откройте SQL Server Configuration Manager.
  2. В разделе SQL Server Network Configuration для вашего экземпляра включите протокол Shared Memory и поставьте его первым в приоритете.
  3. В настройках подключения в консоли администрирования 1С в качестве имени сервера SQL указывайте точку . или локальное имя сервера, а не IP-адрес.

Оптимизация дисковой подсистемы и TempDB

Тест Гилева крайне чувствителен к скорости фиксации транзакций (Commit) в логе транзакций и интенсивности работы с tempdb. Рассмотрим по шагам, как ускорить дисковые операции на NVMe накопителях.

Во-первых, перенесем tempdb на самый быстрый диск (NVMe). Во-вторых, настроим саму базу tempdb. Согласно рекомендациям, следует разбивать файлы данных tempdb на несколько равных частей (обычно 4 или 8 файлов), чтобы снизить конкуренцию за распределение страниц (PFS/GAM).

В-третьих, проанализируем настройки Windows для NVMe. В диспетчере устройств найдите ваш NVMe диск, зайдите в свойства и на вкладке «Политика» проверьте пункт «Отключить очистку буфера кэша записей Windows». Это значительно ускорит работу SQL Server, но требует обязательного наличия надежного источника бесперебойного питания (ИБП), так как при внезапном отключении электричества данные в кэше могут быть потеряны.

Также не забудем про настройку Instant File Initialization. Убедитесь, что пользователю, под которым запущена служба SQL Server, назначено право Perform volume maintenance tasks (Выполнение задач по обслуживанию томов) в локальных политиках безопасности. Это позволит SQL мгновенно создавать и расширять файлы данных, не забивая их нулями.

Влияние версии платформы и оперативной памяти DDR5

Важно понимать, что новые версии платформы 1С (начиная с 8.3.20 и выше) могут показывать чуть более низкие результаты в синтетических тестах по сравнению со старыми релизами (например, 8.3.17). Это связано с дополнительными проверками безопасности и изменениями в архитектуре ядра. Однако в реальных задачах новые платформы обычно работают эффективнее.

Что касается памяти DDR5, то её высокая пропускная способность — это плюс, но для 1С критически важна Latency (задержка). Рассмотрим действия по оптимизации:

Заключение: реальная скорость против синтетики

Проанализируем главный вывод: не стоит ориентироваться только на тест Гилева. Как показывает практика, на процессорах i9-12900K при низком результате теста (около 45 единиц) реальные операции (групповое проведение документов, формирование отчетов) могут выполняться в 1.5–2 раза быстрее, чем на старых системах, показывающих те же 45-50 попугаев. Это происходит из-за того, что тест измеряет конкретный узкий сценарий, а современная архитектура процессора и DDR5 лучше проявляют себя в комплексных нагрузках.

Если после всех настроек (Shared Memory, BIOS, Power Limits) вы получили стабильные 80-100 попугаев на SQL — это отличный результат для данной платформы. Если же цифра остается в районе 40, но пользователи отмечают существенный прирост скорости — значит, система настроена корректно, и узким местом является сама методика синтетического замера на конкретном сочетании ОС и версии платформы.

← На главную