Разберем типичную и крайне неприятную ситуацию: организация приобретает современный производительный сервер (многоядерные процессоры Xeon, большой объем быстрой оперативной памяти, аппаратный RAID-контроллер с кэш-памятью и батареей, корпоративные SSD), устанавливает актуальные версии операционной системы и СУБД — Windows Server 2016 и MS SQL Server 2016, однако информационная база 1С начинает запускаться и работать заметно медленнее, чем на старом оборудовании под управлением Windows Server 2008 R2 или 2012.
Выясним причину такого падения скорости и подробно рассмотрим шаги, которые позволят устранить «бутылочные горлышки» на аппаратном уровне, в операционной системе и настройках СУБД.
Проанализируем архитектурные особенности серверных платформ. Многоядерные процессоры (например, линейки Xeon E5 v4) часто обладают относительно невысокой базовой тактовой частотой на ядро. Для серверной части платформы 1С критически важна именно однопоточная производительность, поскольку компиляция модулей, запуск сеансов пользователей и обработка многих транзакций выполняются строго последовательно в рамках одного потока.
По умолчанию в BIOS/UEFI современных серверов активированы всевозможные режимы «зеленого» энергосбережения. При импульсной нагрузке, характерной для 1С, процессор попросту не успевает повышать множитель и выходить из глубоких состояний простоя.
Выполним следующие аппаратные настройки:
C-States (включая C1E, C3, C6), чтобы процессорные ядра не сбрасывали частоту во время микропауз между транзакциями 1С.Если пользователи работают с 1С в режиме удаленного рабочего стола (Remote Desktop Services / RDS), частой причиной сильного замедления запуска конфигуратора и клиентских приложений является работа подсистемы Fair Share (DFSS — Dynamic Fair Share Scheduling).
Механизм DFSS динамически ограничивает выделение процессорного времени, дискового ввода-вывода и сетевых ресурсов каждому пользователю сеанса терминалов. При запуске «тяжелого» процесса, такого как 1cv8.exe, операционная система искусственно урезает ресурсы сессии, считая запуск приложения попыткой монополизировать процессорное время.
Для отключения динамического распределения ресурсов выполним корректировку параметров реестра Windows:
regedit.exe с правами администратора.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.DWORD (32-bit) с именем EnableDFSS и установим его значение равным 0.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk: если она присутствует, изменим параметр EnableFairShare на значение 0 для отключения балансировки дискового ввода-вывода.Рассмотрим распространенные ошибки при формировании дискового пространства на SSD-накопителях. Размещение файлов операционной системы, баз данных, журналов транзакций и временных файлов на одном логическом диске (или в неправильно сконфигурированном массиве) приводит к конфликтам очередей дисковых операций.
Обратим внимание на следующие правила:
Связка Windows Server 2016 и MS SQL Server 2016 «из коробки» не оптимизирована для специфики нагрузок 1С. Рассмотрим ключевые параметры СУБД, требующие ручной корректировки:
Max Degree of Parallelism = 0 губителен для 1С. SQL Server пытается распараллелить один запрос на множество потоков между разными NUMA-узлами, вызывая длительные блокировки и ожидания CXPACKET. Для стабильной работы 1С установим MAXDOP = 1 в свойствах сервера СУБД. В качестве альтернативы можно задать MAXDOP = 2 или 4, но обязательно увеличив порог Cost Threshold for Parallelism до 30–50.rphost.exe, rmngr.exe) установлена рядом с СУБД, это приведет к вытеснению процессов 1С в файл подкачки (swap). Необходимо жестко ограничить параметр Maximum server memory (in MB), оставив под нужды ОС и кластера 1С не менее 32–64 ГБ памяти (из имеющихся 256 ГБ).secpol.msc) перейдем в раздел Назначение прав пользователя и предоставим учетной записи, от имени которой запущена служба SQL Server, право «Выполнение задач по обслуживанию томов» (SE_MANAGE_VOLUME_NAME). Это исключит задержки при автоувеличении файлов данных баз 1С.tempdb должно быть увеличено до количества физических ядер одного процессора (как правило, 8 файлов), с одинаковым начальным размером и фиксированным шагом авторасширения.Начиная с Windows Server 2016, встроенный антивирус Windows Defender включен по умолчанию. Он непрерывно сканирует системные и временные каталоги при обращениях 1С.
Добавим в исключения антивирусной защиты:
1cv8.exe, 1cv8c.exe, ragent.exe, rmngr.exe, rphost.exe, sqlservr.exe.srvinfo), каталоги размещения баз данных SQL (.mdf, .ldf), а также временные папки пользователей терминалов (AppData\Local\Temp).Комплексное применение указанных настроек устраняет скрытые задержки в работе операционной системы и СУБД, позволяя полностью раскрыть потенциал нового серверного оборудования в среде 1С:Предприятие.