Как повысить производительность 1С:ERP на сервере с процессором Xeon и MS SQL Server?

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

При развертывании тяжелых корпоративных систем, таких как 1С:ERP Управление предприятием, ИТ-специалисты часто сталкиваются с парадоксальной ситуацией. Мощный двухпроцессорный сервер с огромным объемом оперативной памяти и быстрыми NVMe-накопителями выдает крайне низкие показатели в тестах производительности (например, всего 30 «попугаев» в однопоточном тесте Гилева TPC-1C). При этом визуально система работает медленно, а пользователи жалуются на задержки при проведении документов.

В этой статье мы подробно разберем, почему «железо» топ-уровня может работать вполсилы, как правильно диагностировать аппаратные ограничения и какие тонкие настройки BIOS, операционной системы Windows Server и СУБД MS SQL Server 2014 необходимо выполнить для достижения максимального быстродействия.

Диагностика проблемы: почему «плавает» частота процессора?

Проанализируем классическую конфигурацию оборудования, часто используемую для средних и крупных баз 1С:

Несмотря на выдающиеся характеристики, тест Гилева показывает скромные 30 единиц. Первое, на что необходимо обратить внимание — это стабильность тактовой частоты процессора под нагрузкой. Если при мониторинге системы утилитами (например, CPU-Z или HwInfo) вы замечаете, что множитель (multiplier) и частота ядер постоянно меняются («плавают»), это главный признак активных функций энергосбережения.

Даже если в настройках операционной системы Windows Server выбран план электропитания «Высокая производительность» (High Performance), этого может быть недостаточно. Аппаратные алгоритмы процессора на уровне BIOS имеют более высокий приоритет и могут принудительно снижать частоту ядер в моменты простоя или низкой многопоточной нагрузки. Для транзакционной системы 1С, где критически важна скорость выполнения однопоточных операций, любые колебания частоты и задержки на «разогрев» ядер губительны.

Тонкая настройка BIOS для процессоров Intel Xeon

Чтобы заставить сервер работать на пределе своих возможностей, выполним пошаговую настройку BIOS (на примере процессоров Intel Xeon E5 v4 поколения Broadwell-EP):

  1. Переключение режима электропитания (Power Management Policy): Переводим основной профиль энергосбережения из режима Balanced (Сбалансированный) в режим Max Performance (Максимальная производительность) или Custom (Пользовательский), чтобы разблокировать ручное управление параметрами.
  2. Отключение процессорных C-States: Настройки глубокого засыпания ядер (C-States, C1E, C3, C6) переводим в положение Disabled. Включение этих состояний позволяет процессору отключать неиспользуемые ядра для экономии электричества. Однако процесс пробуждения ядра занимает драгоценные микросекунды. Для 1С это выливается в микрозадержки (микролаги) при выполнении кода.
  3. Отключение динамического изменения частоты: Технологии Intel SpeedStep (EIST) и Intel Speed Shift Technology (SST) переводим в положение Disabled. Это заставит процессор всегда работать на максимальной базовой частоте, не снижая ее при падении нагрузки.
  4. Отключение Energy Efficient Turbo: Эту опцию обязательно деактивируем (Disabled). Она оптимизирует работу Turbo Boost с точки зрения энергоэффективности, что снижает общую производительность процессора под нагрузкой.
  5. Настройка технологии Hyper-Threading (HT): Здесь решение зависит от профиля нагрузки вашей ERP. Если в базе одновременно работает мало пользователей (до 30–50), но важна скорость выполнения тяжелых регламентных операций в один поток, отключение Hyper-Threading в BIOS может дать прирост до 5–10% в тестах. Если же на сервере работают более 100 активных пользователей, HT лучше оставить включенным (Enabled), чтобы операционная система могла эффективно распределять сотни параллельных потоков СУБД и сервера 1С.
  6. Отключение функций виртуализации: Поскольку наш сервер работает «на железе» (bare metal) без гипервизоров Hyper-V или VMware, функции Intel VT-x и Intel VT-d можно безопасно отключить в BIOS, тем самым минимизировав накладные расходы архитектуры.

После применения этих настроек частота процессора жестко зафиксируется на максимальной отметке (с учетом Turbo Boost), пропадут задержки на переключение состояний ядер, а показатели теста производительности Гилева мгновенно вырастут (в нашем случае — с 30 до 40+ попугаев).

Различия между тестами TPC-1C и G1C

Выясним причину, почему одного лишь теста TPC-1C недостаточно для оценки реальной производительности ERP-системы.

Тест TPC-1C (однопоточный тест Гилева) оценивает "чистую" скорость процессора при выполнении последовательного кода 1С на одном ядре. Он незаменим для оценки влияния частоты процессора и задержек памяти, но совершенно не отражает работу сервера под реальной многопоточной нагрузкой.

Для комплексной оценки используется компонентный тест G1C. Этот инструмент эмулирует параллельную работу множества пользователей, выполняющих интенсивный ввод данных: групповое проведение документов, формирование отчетов, запись тяжелых транзакций. Тест G1C нагружает не только процессорные ядра, но и дисковую подсистему, проверяя скорость работы с временными таблицами базы данных. Если показатели TPC-1C у вас высокие, а тест G1C показывает неудовлетворительные результаты, проблему нужно искать в настройках СУБД и дисковой подсистемы.

Оптимизация СУБД MS SQL Server 2014 под задачи 1С

Рассмотрим детально, как правильно настроить MS SQL Server 2014, чтобы база 1С:ERP работала максимально быстро.

Критически важным компонентом для 1С является системная база данных tempdb. В ней постоянно создаются, изменяются и уничтожаются миллионы временных таблиц. Настроим ее структуру:

Для MS SQL Server 2014 крайне важно вручную прописать в параметрах запуска службы СУБД специальные ключи (флаги трассировки). Начиная с версии SQL Server 2016 часть из них включена по умолчанию, но для версии 2014 года их настройка обязательна:


-T1118
-T1117
-T4199
-T2371

Разберем назначение каждого флага подробнее:

Еще один важный параметр СУБД — это Max Degree of Parallelism (MAXDOP). Для баз данных 1С настоятельно рекомендуется установить значение этого параметра равным 1. Это запретит SQL Server дробить один тяжелый запрос на несколько параллельных потоков. В многопользовательской среде 1С распараллеливание запросов часто приводит к взаимным блокировкам (deadlocks) и перегрузке процессора.

Настройка операционной системы Windows Server

Перейдем к системным настройкам Windows Server, которые помогут убрать неявные задержки на уровне ядра ОС.

Проанализируем состояние ядер процессора. В Windows по умолчанию активна технология парковки ядер (Core Parking). Когда нагрузка на сервер падает, ОС "паркует" часть ядер, отключая их. При резком поступлении запроса от 1С операционной системе требуется время на запуск ядра, что вызывает задержки обработки транзакций. Отключить парковку ядер можно с помощью изменения параметров реестра или специализированных утилит (например, ParkControl), принудительно выставив значение парковки в 0%.

Предоставим учетной записи, под которой запущена служба MS SQL Server, две важные системные привилегии в локальной политике безопасности Windows (Secpol.msc):

  1. Lock Pages in Memory (Закрепление страниц в памяти): Данная политика запрещает операционной системе сбрасывать данные из буферного пула (Buffer Pool) SQL Server в медленный файл подкачки на диске при возникновении дефицита свободной памяти в Windows. Оперативная память СУБД всегда остается в быстром ОЗУ.
  2. Perform Volume Maintenance Tasks (Выполнение задач по обслуживанию томов): Эта опция включает механизм быстрого создания и расширения файлов баз данных (Instant File Initialization). При авторасширении базы или файлов tempdb операционная система не будет тратить время на заполнение нового дискового пространства нулями, а мгновенно выделит требуемый объем. Это предотвратит "зависание" транзакций пользователей в момент роста базы данных.

Модернизация дисковой подсистемы: SSD vs Intel Optane

Обсудим аппаратный апгрейд дисковой системы. Традиционные корпоративные SSD накопители (такие как Intel DC P3600) используют технологию флеш-памяти NAND (MLC или TLC). Они отлично справляются с линейным чтением и записью больших объемов информации, но имеют физические ограничения по времени задержки (latency) при случайной записи мелких блоков (4KB) на низкой глубине очереди (Query Depth QD1-QD4).

Именно в таком режиме — случайная запись небольших блоков данных с минимальной глубиной очереди — и работает СУБД MS SQL Server при обслуживании транзакций 1С (запись файлов лога транзакций ldf и работа с tempdb).

Переход на накопители класса Intel Optane SSD (например, серии P4800X или более новые модели на базе технологии 3D XPoint) кардинально меняет ситуацию. В отличие от NAND флеш-памяти, накопители Optane обладают перезаписью на побайтовом уровне без предварительного стирания блоков памяти. Преимущества технологии 3D XPoint:

Установка накопителей Intel Optane под файлы временных баз tempdb и файлы логов транзакций ldf позволяет полностью ликвидировать дисковое «бутылочное горлышко» сервера 1С:ERP.

← На главную