При развертывании связки 1С:Предприятие и MS SQL Server на мощном серверном оборудовании администраторы часто сталкиваются с парадоксом: файловая база показывает отличные результаты, а клиент-серверный вариант выдает низкие и, что более критично, нестабильные показатели в тестах производительности. Разберем ситуацию, когда на одном и том же «железе» тест Гилева показывает разброс от 13 до 52 единиц. В таких случаях грамотный замер производительности контура 1С и поиск узких мест помогает выявить, где именно возникают задержки и как привести систему к стабильно высокому результату.
Одной из самых частых причин «плавающих» показателей на серверных процессорах семейства Xeon являются механизмы глубокого энергосбережения. По умолчанию серверное оборудование настроено на баланс между производительностью и потреблением электричества, что губительно для высоконагруженных систем 1С. Рассмотрим, что необходимо сделать в первую очередь:
System Profile в BIOS и установим режим Maximum Performance.rphost.exe.Современные сервера, такие как используемый в примере Xeon Gold 6334, имеют архитектуру NUMA (Non-Uniform Memory Access). В двухпроцессорной системе оперативная память распределена между процессорами. Если поток sqlservr.exe выполняется на первом процессоре, а данные пытается прочитать из памяти, подключенной ко второму процессору, возникают значительные задержки из-за передачи данных через шину UPI.
Проанализируем стратегию оптимизации:
Inter-node latency. Если задержки велики, это подтверждает необходимость настройки привязки ядер.Стандартная установка MS SQL Server «из коробки» не подходит для специфики работы 1С, которая генерирует огромное количество коротких транзакций. Чтобы упростить контроль параметров, можно проанализировать SQL сервер глазами 1С-ника с помощью специализированных инструментов.
Разберем ключевые параметры, которые влияют на стабильность:
Мгновенная инициализация файлов (Instant File Initialization):
Выясним, включена ли эта опция. Если SQL-серверу не выдано право в локальных политиках безопасности на «Выполнение задач по обслуживанию томов», то при автоматическом расширении базы данных или лога транзакций (.ldf) система будет заполнять новое пространство нулями. Это приводит к резким «провалам» в тесте Гилева. Убедимся, что учетная запись, под которой запущен SQL, имеет это право.
Настройка параллелизма (MAXDOP):
Параметр Max Degree of Parallelism критически важен. Для 1С рекомендуется устанавливать значение 1. Это исключает накладные расходы на попытки SQL-сервера распараллелить простые запросы, что часто только замедляет их выполнение и создает нестабильность при высокой конкуренции за ресурсы.
Блокировка страниц в памяти (Lock Pages in Memory):
Настроим привилегию Lock Pages in Memory для учетной записи SQL. Это предотвратит выгрузку буферного кэша СУБД в файл подкачки операционной системой Windows, что исключит внезапные замедления после простоев. Также крайне важна правильная настройка регламентных операций MS SQL SERVER, адаптированная под требования 1С.
Тест Гилева в значительной степени замеряет скорость записи в лог транзакций. Рассмотрим факторы, влияющие на этот процесс:
Write-Through, что снизит скорость записи в десятки раз. Для стабильных 50+ попугаев необходим режим Write-Back.64 КБ. Это стандарт де-факто для высокопроизводительных систем хранения данных.Выясним, какие фоновые процессы могут мешать тестированию. В Windows Server 2019 по умолчанию активен Windows Defender. Если не добавить процессы и файлы базы данных в исключения, антивирус будет сканировать каждый блок данных при обращении СУБД к диску.
Добавим в исключения антивируса:
sqlservr.exe, rphost.exe, rmngr.exe..mdf, .ldf, .ndf.Также проанализируем протокол подключения. При расположении 1С и SQL на одном сервере должен использоваться протокол Shared Memory. Посмотрим настройки в SQL Server Configuration Manager и убедимся, что этот протокол включен и стоит первым в приоритете, чтобы избежать задержек сетевого стека при использовании TCP/IP loopback.
Стабильность результатов теста (например, получение уверенных 45-55 попугаев вместо скачков 13-52) достигается не за счет «мощности» процессора, а за счет исключения всех факторов ожидания (wait types). Файловая база дает 90+ единиц, так как работает в адресном пространстве одного процесса без сетевых и межпроцессных взаимодействий. Наша задача в SQL-варианте — максимально приблизить скорость взаимодействия сервера 1С и СУБД к скорости работы с памятью, минимизировав влияние ОС и механизмов энергосбережения.