Почему медленно работает 1С:ERP на виртуальном сервере и как это исправить

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

Ситуация, когда современная и мощная конфигурация 1С:ERP начинает «тормозить» на пустой базе, знакома многим администраторам. Медленное открытие форм, задержки при листании списков и длительное проведение документов при малом количестве пользователей — это явные признаки того, что система работает неоптимально. Рассмотрим подробно, как продиагностировать и устранить причины низкой производительности в клиент-серверном варианте на виртуальной машине.

Шаг 1. Первичная диагностика и тест Гилева

Прежде чем приступать к глубоким настройкам, нам необходимо получить объективную метрику производительности. В мире 1С общепринятым стандартом является тест Гилева. Проанализируем ситуацию: если тест показывает значение в районе 5.03 (как в рассматриваемом случае), это классифицируется как критически низкий результат. Для комфортной работы с ERP этот показатель должен быть не ниже 25–30, а в идеале — выше 40 «попугаев».

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

Шаг 2. Настройка электропитания и частоты процессора

Одной из самых частых причин медленной работы 1С является агрессивное энергосбережение. Разберем, как это влияет на систему: процессоры Intel Xeon имеют базовую частоту (например, 2.4 ГГц) и частоту Turbo Boost. Если в настройках операционной системы или BIOS/UEFI выбран «Сбалансированный» режим, процессор постоянно «засыпает» и снижает частоту. 1С — это система, критичная к скорости одного потока, и задержки на «просыпание» ядер при каждом запросе приводят к ощутимым тормозам интерфейса.

Что необходимо сделать:

  1. В гостевой операционной системе (Windows Server) установим схему управления электропитанием «Высокая производительность» (High Performance). Проверим, чтобы минимальное состояние процессора было равно 100%.
  2. На физическом хосте, где развернута виртуальная машина, также выставим режим максимальной производительности в настройках гипервизора (ESXi, Hyper-V) и в BIOS самого сервера.

Шаг 3. Оптимизация SQL Server для работы с 1С

Посмотрим на настройки СУБД, так как именно взаимодействие сервера 1С и SQL часто становится причиной задержек. Рассмотрим основные параметры, которые необходимо проверить и изменить:

Параметр MAXDOP (Max Degree of Parallelism). По умолчанию SQL Server пытается распараллелить выполнение одного запроса на все доступные ядра. Для 1С это часто вредно, так как порождает ожидания на синхронизацию потоков. Рекомендуется установить значение MAXDOP = 1. В некоторых случаях для мощных систем можно установить 2 или 4, но начать стоит именно с единицы.

Протокол Shared Memory. Если сервер 1С и SQL Server установлены на одной физической или виртуальной машине, крайне важно настроить их взаимодействие через «общую память». Это исключает накладные расходы на сетевой стек TCP/IP. Проверим настройки в SQL Configuration Manager и убедимся, что протокол Shared Memory включен, а в строке подключения 1С указано локальное имя сервера.

Режим восстановления (Recovery Model). Проанализируем состояние логов транзакций. Если база находится в режиме Full, но регулярные бэкапы лога не настроены, файл .ldf будет бесконечно расти, замедляя операции записи. Для рабочих баз настроим регулярный бэкап лога, либо временно переведем базу в режим Simple (если это допустимо политикой безопасности), чтобы снизить нагрузку на дисковую подсистему.

Шаг 4. Настройка регламентных заданий в 1С:ERP

Конфигурация ERP очень насыщена фоновыми процессами. В новой базе многие из них начинают работать сразу «из коробки», потребляя ресурсы. Проанализируем список регламентных заданий в разделе Администрирование — Обслуживание — Регламентные задания. Выясним, какие из них можно отключить или настроить на более редкое исполнение:

Отключение ненужных фоновых заданий освободит ресурсы процессора и уменьшит количество блокировок в базе данных.

Шаг 5. Тюнинг виртуализации и дисков

Если сервер виртуальный, нужно обратить внимание на специфические настройки гипервизора. Разберем по шагам, на что смотреть системному администратору:

Резервирование памяти (Memory Reservation). Для SQL-сервера крайне желательно зарезервировать весь объем выделенной оперативной памяти, чтобы гипервизор не забирал её через механизм «ballooning». Если SQL Server начнет сбрасывать кэш в файл подкачки, производительность упадет в десятки раз.

Тип виртуальных дисков. Убедимся, что диски виртуальной машины созданы как Thick Provisioned Eager Zeroed (диски с фиксированным размером и предварительным обнулением). «Тонкие» (Thin) диски при записи (проведении документов) тратят время на выделение места в файловой системе хоста, что вызывает микрозадержки.

Размещение TempDB. Рекомендуется выносить временную базу SQL (tempdb) на отдельный виртуальный диск, а в идеале — на самый быстрый доступный физический SSD/NVMe накопитель.

Пример настройки обслуживания SQL

Для поддержания базы в актуальном состоянии необходимо настроить регулярный Maintenance Plan. Посмотрим на пример скрипта для обновления статистики, который можно запускать в часы минимальной нагрузки:


USE [Имя_Вашей_Базы];
GO
EXEC sp_updatestats;
GO

Обновление статистики помогает оптимизатору SQL правильно строить планы запросов, что критически важно для тяжелых отчетов ERP.

Итоги

Если после выполнения всех настроек (электропитание, MAXDOP, отключение регламентных заданий) тест Гилева все еще показывает результат ниже 15–20 единиц, стоит обратить внимание на физическую составляющую: частоту ядер процессора (желательно выше 3.0 ГГц для 1С) и задержки дисковой подсистемы. Совместная работа администратора 1С и системного администратора по данному чек-листу позволяет поднять производительность системы до приемлемых значений даже на скромном оборудовании.

← На главную