Почему 1С медленно работает и долго запускается на Windows Server 2016 и MS SQL 2016?

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

Разберем типичную и крайне неприятную ситуацию: организация приобретает современный производительный сервер (многоядерные процессоры Xeon, большой объем быстрой оперативной памяти, аппаратный RAID-контроллер с кэш-памятью и батареей, корпоративные SSD), устанавливает актуальные версии операционной системы и СУБД — Windows Server 2016 и MS SQL Server 2016, однако информационная база 1С начинает запускаться и работать заметно медленнее, чем на старом оборудовании под управлением Windows Server 2008 R2 или 2012.

Выясним причину такого падения скорости и подробно рассмотрим шаги, которые позволят устранить «бутылочные горлышки» на аппаратном уровне, в операционной системе и настройках СУБД.

1. Аппаратный уровень: однопоточная производительность и энергосбережение

Проанализируем архитектурные особенности серверных платформ. Многоядерные процессоры (например, линейки Xeon E5 v4) часто обладают относительно невысокой базовой тактовой частотой на ядро. Для серверной части платформы 1С критически важна именно однопоточная производительность, поскольку компиляция модулей, запуск сеансов пользователей и обработка многих транзакций выполняются строго последовательно в рамках одного потока.

По умолчанию в BIOS/UEFI современных серверов активированы всевозможные режимы «зеленого» энергосбережения. При импульсной нагрузке, характерной для 1С, процессор попросту не успевает повышать множитель и выходить из глубоких состояний простоя.

Выполним следующие аппаратные настройки:

  1. Перейдем в BIOS/UEFI сервера и переключим общий профиль электропитания (Power Management Policy) в режим максимальной производительности (Max Performance или High Performance).
  2. Принудительно отключим состояния глубокого энергосбережения: C-States (включая C1E, C3, C6), чтобы процессорные ядра не сбрасывали частоту во время микропауз между транзакциями 1С.
  3. В настройках операционной системы Windows Server откроем раздел управления электропитанием и выберем схему «Высокая производительность» (High Performance), проверив, чтобы минимальное и максимальное состояние процессора было зафиксировано на отметке 100%.

2. Отключение механизма DFSS на сервере терминалов

Если пользователи работают с 1С в режиме удаленного рабочего стола (Remote Desktop Services / RDS), частой причиной сильного замедления запуска конфигуратора и клиентских приложений является работа подсистемы Fair Share (DFSS — Dynamic Fair Share Scheduling).

Механизм DFSS динамически ограничивает выделение процессорного времени, дискового ввода-вывода и сетевых ресурсов каждому пользователю сеанса терминалов. При запуске «тяжелого» процесса, такого как 1cv8.exe, операционная система искусственно урезает ресурсы сессии, считая запуск приложения попыткой монополизировать процессорное время.

Для отключения динамического распределения ресурсов выполним корректировку параметров реестра Windows:

  1. Запустим редактор реестра regedit.exe с правами администратора.
  2. Перейдем в ветку реестра, отвечающую за настройки сервера терминалов: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.
  3. Внутри раздела найдем или создадим параметр типа DWORD (32-bit) с именем EnableDFSS и установим его значение равным 0.
  4. Также проверим ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk: если она присутствует, изменим параметр EnableFairShare на значение 0 для отключения балансировки дискового ввода-вывода.
  5. Перезагрузим сервер для применения изменений в подсистеме терминальных служб.

3. Настройка дисковой подсистемы и массива RAID

Рассмотрим распространенные ошибки при формировании дискового пространства на SSD-накопителях. Размещение файлов операционной системы, баз данных, журналов транзакций и временных файлов на одном логическом диске (или в неправильно сконфигурированном массиве) приводит к конфликтам очередей дисковых операций.

Обратим внимание на следующие правила:

  1. Конфигурация массива: Использование RAID 1 с диском горячего резерва (Hot Spare) на трех SSD обеспечивает надежность, но для максимального быстродействия СУБД рекомендуется использовать RAID 10 из 4 и более накопителей. Ни в коем случае нельзя использовать RAID 5 для транзакционных баз 1С на обычных HDD или недорогих SSD из-за штрафа на запись.
  2. Кэш контроллера: Убедимся, что на аппаратном RAID-контроллере установлена и исправна батарея (BBU/CVPM), а для виртуального диска включен режим отложенной записи (Write-Back). Без исправного источника резервного питания контроллер автоматически переходит в режим прямой записи (Write-Through), что драматически снижает скорость записи на диски.
  3. Физическое разнесение: Рекомендация «разносить базу и журнал транзакций по разным дискам» эффективна только тогда, когда используются разные физические массивы накопителей, а не просто разные логические тома одного и того же RAID-массива.

4. Тонкая настройка MS SQL Server 2016 под платформу 1С

Связка Windows Server 2016 и MS SQL Server 2016 «из коробки» не оптимизирована для специфики нагрузок 1С. Рассмотрим ключевые параметры СУБД, требующие ручной корректировки:

  1. Параллелизм (MAXDOP): На двухпроцессорных серверах с 20 и более ядрами параметр по умолчанию Max Degree of Parallelism = 0 губителен для 1С. SQL Server пытается распараллелить один запрос на множество потоков между разными NUMA-узлами, вызывая длительные блокировки и ожидания CXPACKET. Для стабильной работы 1С установим MAXDOP = 1 в свойствах сервера СУБД. В качестве альтернативы можно задать MAXDOP = 2 или 4, но обязательно увеличив порог Cost Threshold for Parallelism до 30–50.
  2. Ограничение максимального объема памяти: По умолчанию экземпляр SQL Server готов занять всю физическую RAM. На сервере, где служба 1С (rphost.exe, rmngr.exe) установлена рядом с СУБД, это приведет к вытеснению процессов 1С в файл подкачки (swap). Необходимо жестко ограничить параметр Maximum server memory (in MB), оставив под нужды ОС и кластера 1С не менее 32–64 ГБ памяти (из имеющихся 256 ГБ).
  3. Мгновенная инициализация файлов (Instant File Initialization): В локальных политиках безопасности Windows (secpol.msc) перейдем в раздел Назначение прав пользователя и предоставим учетной записи, от имени которой запущена служба SQL Server, право «Выполнение задач по обслуживанию томов» (SE_MANAGE_VOLUME_NAME). Это исключит задержки при автоувеличении файлов данных баз 1С.
  4. Файлы tempdb: Количество файлов данных системной базы tempdb должно быть увеличено до количества физических ядер одного процессора (как правило, 8 файлов), с одинаковым начальным размером и фиксированным шагом авторасширения.

5. Исключения антивируса и Windows Defender

Начиная с Windows Server 2016, встроенный антивирус Windows Defender включен по умолчанию. Он непрерывно сканирует системные и временные каталоги при обращениях 1С.

Добавим в исключения антивирусной защиты:

  1. Исполняемые файлы процессов: 1cv8.exe, 1cv8c.exe, ragent.exe, rmngr.exe, rphost.exe, sqlservr.exe.
  2. Каталоги: папку реестра кластера 1С (каталог srvinfo), каталоги размещения баз данных SQL (.mdf, .ldf), а также временные папки пользователей терминалов (AppData\Local\Temp).

Комплексное применение указанных настроек устраняет скрытые задержки в работе операционной системы и СУБД, позволяя полностью раскрыть потенциал нового серверного оборудования в среде 1С:Предприятие.

← На главную