Ситуация, когда более мощное оборудование под управлением новой операционной системы показывает результаты хуже, чем старый сервер, часто ставит в тупик системных администраторов. В контексте работы 1С это классическая проблема, связанная с изменением архитектуры Windows, начиная с версии Server 2008. Разберем подробно, почему это происходит, и проанализируем шаги, которые позволят вернуть производительность вашей системе.
Прежде чем переходить к настройкам операционной системы, рассмотрим фундаментальный уровень — железо. Современные процессоры, такие как Xeon E5-2620 v2, обладают развитыми функциями энергосбережения. В отличие от старых моделей, они умеют динамически изменять частоту и отключать неиспользуемые ядра.
Рассмотрим, как это влияет на 1С. Большинство отчетов в 1С выполняются в один поток. Если процессор видит, что общая загрузка сервера невелика, он может не повышать частоту конкретного ядра, на котором выполняется задача. Для исправления этой ситуации выполним следующие действия:
Одной из главных причин замедления 1С в терминальном режиме на Windows Server 2008 является внедрение механизма Fair Share CPU Scheduling. Его задача — обеспечить "справедливое" распределение ресурсов процессора между всеми пользователями RDP. Если один пользователь запускает тяжелый отчет 1С, система искусственно ограничивает его потребление ресурсов, чтобы не мешать остальным.
Для 1С это губительно. Проанализируем ситуацию: отчет, который мог бы выполниться за 40 секунд при полной нагрузке одного ядра, растягивается на 70 секунд из-за постоянных прерываний планировщиком ОС. Чтобы отключить этот механизм, воспользуемся редактором реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System
Параметр: EnableCPUQuota (REG_DWORD)
Значение: 0
После изменения этого параметра сервер необходимо перезагрузить. Это позволит процессам 1cv8.exe использовать максимально доступные ресурсы одного ядра без искусственных ограничений.
Если база данных работает в клиент-серверном варианте, производительность напрямую зависит от взаимодействия сервера приложений 1С и SQL. Рассмотрим критические настройки SQL Server:
gpedit.msc).Проанализируем сетевое взаимодействие. В Windows Server 2008 был обновлен стек TCP/IP и внедрена функция автоподстройки Receive Window Auto-Tuning. Иногда это вызывает задержки при передаче пакетов между сервером 1С и SQL.
Попробуем отключить функции оптимизации, которые могут работать некорректно:
netsh interface tcp set global autotuninglevel=disabled.netsh int tcp set global chimney=disabled.Также важно проверить протокол SMB. Если вы используете внешние файлы или отчеты на сетевых дисках, разница между SMB 1.0 (в 2003) и SMB 2.0 (в 2008) может быть значительной. В некоторых случаях блокировки SMB 2.0 замедляют работу с мелкими файлами 1С.
Нельзя игнорировать тот факт, что для Windows Server 2008 выпускались обновления, закрывающие уязвимости процессоров Meltdown и Spectre. Эти патчи вносят изменения в работу ядра ОС и могут замедлять выполнение системных вызовов на 15–30%. На Windows Server 2003 эти патчи практически не применялись или не имели такого влияния в силу старости архитектуры.
Проверим наличие этих патчей. Если безопасность позволяет, в тестовых целях можно попробовать отключить защиту через реестр, чтобы сравнить производительность.
Выясним, как настройки интерфейса влияют на скорость. В терминальной сессии отрисовка форм 1С может занимать значительное время. Выполним следующие шаги:
1cv8.exe и 1cv8c.exe в исключения DEP (Data Execution Prevention).%AppData%\Local\1C и каталоги баз данных должны быть строго в исключениях. 1С создает огромное количество временных файлов, и их проверка "на лету" сильно тормозит формирование отчетов.Подводя итог, можно сказать, что переход на Windows Server 2012 или 2016 без выполнения указанных выше настроек может привести к еще большему замедлению. Однако при правильной конфигурации планировщика задач, режимов питания и параметров SQL Server, современная ОС покажет гораздо большую стабильность и масштабируемость при высокой нагрузке.