Почему тест Гилева в Hyper-V работает быстрее, чем на физическом сервере, а Windows 10 обгоняет Windows Server?

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

При администрировании серверов 1С и СУБД специалисты часто сталкиваются с удивительным парадоксом. Чистая физическая машина с мощным процессором, большим объемом оперативной памяти и быстрыми дисками показывает в тесте производительности 1С (тесте Гилева) более скромные результаты, чем виртуальная машина Hyper-V, развернутая на этом же самом железе. Более того, при переходе с серверной операционной системы Windows Server на обычную десктопную Windows 10 «попугаи» производительности резко возрастают.

В этой статье мы подробно и по шагам разберем внутреннюю архитектуру Windows, планировщика задач и дисковой подсистемы, чтобы понять, почему возникают такие аномалии, и как правильно настроить физический сервер для достижения максимальной скорости работы 1С.

Причина 1. Особенности архитектуры Hyper-V и роль родительского раздела (Root Partition)

Для того чтобы понять, почему физический хост может уступать виртуальной машине, разберем архитектуру гипервизора Microsoft. Когда на операционной системе Windows Server активируется роль Hyper-V, архитектура системы кардинально меняется. Сама хостовая ОС перестает работать напрямую на «железе». Она превращается в так называемый Root Partition (родительский раздел), который функционирует поверх микроядерного гипервизора наряду с гостевыми виртуальными машинами (Child Partitions).

Проанализируем разницу в их нагрузке:

  1. Родительский раздел (хост) несет на себе колоссальную системную нагрузку. Он отвечает за управление физическим оборудованием, сетевую коммутацию, эмуляцию шин и координацию ввода-вывода всех виртуальных машин. Планировщик гипервизора постоянно прерывает процессы в родительском разделе ради обслуживания системных задач ввода-вывода.
  2. Виртомашина (гость) работает в изолированной и «стерильной» среде. Если хост относительно свободен, планировщик гипервизора выделяет гостевой ОС процессорное время монопольно и предсказуемо. Поток теста 1С в гостевой ОС реже прерывается на обработку прерываний от физического оборудования, что дает выигрыш в однопоточном синтетическом тесте.

Причина 2. Приоритеты планировщика задач (Desktop vs Server) и кванты времени

Разберем, почему замена Windows Server на Windows 10 на одном и том же «железе» приводит к резкому росту производительности в тесте Гилева (в некоторых случаях — с 22 до 38 попугаев). Это напрямую связано с настройками планировщика операционной системы и распределением процессорного времени.

В операционных системах Microsoft Windows логика распределения квантов времени процессора регулируется системным значением Win32PrioritySeparation:

Причина 3. Игнорирование синхронной записи (Write-Through) виртуальным контроллером

Тест производительности 1С критически зависит от скорости транзакционных записей в базу данных (операций фиксации транзакций в СУБД SQL Server). Выясним, почему виртуальный диск работает быстрее физического SATA/SAS:

На физическом сервере СУБД при фиксации транзакции отправляет ОС команду с флагом FILE_FLAG_WRITE_THROUGH. Это требует от дискового контроллера физически записать данные на энергонезависимый носитель и только после этого вернуть СУБД подтверждение успешности. Процесс останавливается и ждет физического отклика диска.

В виртуальной машине Hyper-V гостевая ОС взаимодействует с виртуальным дисковым контроллером (IDE или SCSI). При получении запроса на синхронную запись гипервизор часто перехватывает эти вызовы и выполняет их асинхронно, кэшируя операции ввода-вывода на уровне хоста. Гостевая операционная система моментально получает отчет «запись успешно завершена», хотя физически данные еще находятся в оперативной памяти физического сервера. Это дает огромную прибавку к скорости в синтетических тестах, но несет риски потери данных или разрушения базы данных при внезапном отключении электропитания хоста.

Причина 4. Служба балансировки ресурсов DFSS в Windows Server

В серверных операционных системах Windows Server по умолчанию активен механизм Dynamic Fair Share Scheduling (DFSS). Его задача — обеспечить справедливое распределение аппаратных ресурсов (процессора, диска, сети) между пользователями и процессами, предотвращая монополизацию системы одним тяжелым процессом.

Когда тест производительности 1С запускается и начинает лавинообразно нагружать одно ядро процессора и дисковую подсистему, механизмы DFSS расценивают это поведение как угрозу стабильности всей системы. Служба начинает искусственно ограничивать (дросселировать) ресурсы для этого потока. В Windows 10 эта служба отсутствует, что позволяет тесту задействовать максимум производительности CPU без ограничений.

Причина 5. Миграция потоков (Thread Migration), парковка ядер и энергосбережение

Еще один важный аспект работы процессоров на современных серверах — управление электропитанием и распределение потоков по ядрам:

Практические шаги: как поднять производительность 1С на физическом сервере Windows Server

Проанализируем ситуацию и настроим физический сервер Windows Server так, чтобы его производительность была максимальной и стабильной. Для этого выполним несколько шагов по оптимизации.

Шаг 1. Настройка схемы электропитания в Windows Server

По умолчанию Windows Server паркует неиспользуемые ядра процессора и снижает их частоту. Изменим эти параметры:

  1. Откройте «Панель управления» -> «Электропитание».
  2. Выберите схему «Высокая производительность» (High Performance) или «Максимальная производительность» (Ultimate Performance).
  3. В дополнительных параметрах схемы убедитесь, что минимальное и максимальное состояние процессора установлены в 100%.

Шаг 2. Настройка приоритета распределения времени процессора

Принудительно настроим серверную ОС на выделение коротких и приоритетных квантов времени, аналогично Windows 10. Это особенно актуально, если сервер используется исключительно под нужды 1С и SQL Server:

  1. Откройте свойства системы (команда sysdm.cpl в окне «Выполнить»).
  2. Перейдите на вкладку «Дополнительно» и в разделе «Быстродействие» нажмите кнопку «Параметры».
  3. В открывшемся окне перейдите на вкладку «Дополнительно».
  4. В разделе «Распределение времени процессора» переключите тумблер с положения «Оптимизировать работу: служб, работающих в фоновом режиме» на положение «Оптимизировать работу: программ». Это изменит значение реестра Win32PrioritySeparation на оптимизированное под интерактивные приложения.

Шаг 3. Отключение парковки ядер (Core Parking) и Intel SpeedStep в BIOS

Для предотвращения задержек при переходе ядер процессора из спящего режима в рабочий выполните настройки на уровне BIOS/UEFI физического сервера:

  1. Перезагрузите сервер и войдите в меню настройки BIOS/UEFI.
  2. Найдите параметры управления питанием процессора (обычно называются CPU Power Management, Advanced Power Management).
  3. Отключите технологии C-States (C1E, C3, C6). Это заблокирует переход процессора в глубокие режимы энергосбережения.
  4. Установите профиль производительности системы в положение Maximum Performance или Static High Performance (управление питанием передается оборудованию, а не ОС).
  5. Отключите параметр Intel SpeedStep (или AMD Cool'n'Quiet), если хотите зафиксировать максимальную частоту процессора.

Шаг 4. Настройка Shared Memory для MS SQL Server и 1С

Если сервер 1С и СУБД SQL Server установлены на одной физической машине, взаимодействие между ними должно происходить через протокол общей памяти (Shared Memory), минуя сетевой стек TCP/IP:

  1. Откройте Диспетчер конфигурации SQL Server (SQL Server Configuration Manager).
  2. Перейдите в раздел «Сетевая конфигурация SQL Server» (SQL Server Network Configuration) -> «Протоколы для MSSQLSERVER».
  3. Убедитесь, что протокол Shared Memory находится в состоянии «Включено» (Enabled) и имеет наивысший приоритет в порядке их использования.

Применение этих настроек позволит минимизировать системные накладные расходы Windows Server, убрать задержки на переключение контекста процессора и вывести производительность физического сервера на один уровень с оптимизированными десктопными ОС, сохранив при этом надежность серверной платформы.

← На главную