Почему на новом мощном сервере 1С работает медленнее, чем на старом?

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

Часто возникает парадоксальная ситуация: организация приобретает новый, дорогостоящий сервер для 1С, системные администраторы настраивают его, переносят базы данных, но пользователи начинают жаловаться, что программа работает медленнее, чем на старом оборудовании. Интерфейс "фризит", формы открываются с задержкой, переключение между строками происходит рывками. В этой статье мы подробно разберем причины такого поведения, проанализируем настройки оборудования и программного обеспечения, а также найдем эффективные пути решения проблемы.

1. Диагностика проблемы: субъективные ощущения против цифр

Первое, что нам необходимо сделать, — это перевести жалобы пользователей "все тормозит" в объективные показатели. Когда мы слышим, что "сначала открывается шапка, а потом табличная часть", это явный признак проблем с однопоточной производительностью или отзывчивостью системы.

Для объективной оценки мы рекомендуем использовать синтетические тесты. Наиболее популярным стандартом де-факто в мире 1С является тест Гилёва (TPC-1C). Он позволяет оценить скорость работы файловых операций и вычислительную мощность процессора в контексте работы платформы 1С:Предприятие.

Почему это важно?

В рассматриваемом случае тест показал критически низкие значения на "новом" сервере, несмотря на то, что железо было номинально мощным. Если тест выдает низкий балл (например, менее 30-40 попугаев для серверного варианта), значит, проблема кроется не в коде конфигурации, а в аппаратной или системной части.

2. Главный виновник: Энергосбережение и настройки питания

Самая распространенная причина тормозов на серверном оборудовании (особенно на процессорах Intel Xeon) — это включенные по умолчанию настройки энергосбережения. Серверные платформы проектируются с прицелом на эффективность энергопотребления в дата-центрах, поэтому "из коробки" они стараются снижать частоту процессора при любой возможности.

Как это влияет на 1С?

Работа пользователя в 1С носит "взрывной" характер (bursty load). Пользователь думает минуту, потом нажимает кнопку "Провести". В этот момент требуется максимальная частота процессора. Если включено энергосбережение, процессору требуются микросекунды или даже миллисекунды, чтобы выйти из состояния сна (C-States) и поднять частоту (P-States). Для пользователя эти задержки суммируются и выглядят как "подтормаживание" интерфейса.

Решение проблемы:

  1. Настройки BIOS: Нам необходимо зайти в BIOS сервера и найти раздел управления питанием (Power Management). Переключите режим из Balanced или OS Controlled в режим Static High Performance (или Maximum Performance). Это заставит процессор всегда работать на максимальной базовой или турбо-частоте, не снижая ее в простое. Также рекомендуется принудительно отключить C-States (состояния глубокого сна ядер).
  2. Настройки ОС Windows: В панели управления Windows Server перейдите в раздел "Электропитание" и выберите схему Высокая производительность (High Performance). Это запретит операционной системе парковать ядра и снижать частоты.

В большинстве случаев, как и в разобранной нами ситуации, одно только это действие возвращает быстродействие системы на должный уровень.

3. Архитектура процессора: "Серверный" не значит "Быстрый" для одного пользователя

Давайте проанализируем разницу между "старым" и "новым" железом. Часто бывает, что под "старым" сервером подразумевается мощный десктопный компьютер на базе Core i7 или i9 (например, i9-9900K), а под "новым" — сервер на базе Intel Xeon (например, E5-2667 v4).

В чем подвох?

Поэтому, если у вас небольшое количество пользователей (10–20), переход с быстрого десктопного процессора на серверный Xeon среднего уровня может визуально снизить скорость работы интерфейса.

4. Виртуализация: цена абстракции

Использование виртуализации (VMware ESXi, Hyper-V) добавляет свои накладные расходы. В норме падение производительности составляет 5–15%, но при неверных настройках оно может достигать 50%.

Если вы используете виртуальную машину для сервера 1С и SQL, обратите внимание на следующие параметры:

  1. Резервирование ресурсов: В настройках виртуальной машины обязательно зарезервируйте всю выделенную оперативную память (Reserve all guest memory). Это предотвратит свопинг памяти на уровень гипервизора (ballooning), который губителен для баз данных.
  2. Latency Sensitivity: В VMware для критически важных ВМ с 1С установите параметр Latency Sensitivity в значение High. Это обеспечит эксклюзивный доступ виртуальной машины к физическим ядрам процессора и снизит задержки прерываний.
  3. Тип дискового контроллера: Используйте паравиртуализованные драйверы (например, PVSCSI в VMware), они создают меньшую нагрузку на центральный процессор при дисковых операциях по сравнению со стандартными LSI Logic SAS.

5. Протоколы обмена: Shared Memory

Рассмотрим ситуацию, когда сервер приложения 1С и сервер баз данных MS SQL Server установлены на одной физической или виртуальной машине. В этом случае нам нужно убедиться, что они общаются максимально коротким путем.

По умолчанию обмен может идти через сетевой стек (TCP/IP), даже если обращение идет на localhost. Это лишние накладные расходы.

Что нужно сделать:

В настройках MS SQL Server (через SQL Server Configuration Manager) убедитесь, что включен протокол Shared Memory (Общая память). Это самый быстрый способ передачи данных между процессами в рамках одной ОС. При создании подключения к информационной базе в консоли администрирования 1С в качестве имени сервера базы данных лучше указывать не IP-адрес, а именно сетевое имя сервера или localhost (в зависимости от нюансов настройки), чтобы сработал механизм Shared Memory.

6. Совместимость версий SQL и Платформы 1С

В разобранной ситуации использовалась довольно старая платформа 1С (8.3.11) и новый SQL Server (2019/2022). Хотя формально такая связка может работать, оптимизатор запросов нового SQL Server использует новые алгоритмы (Cardinality Estimator), под которые старая платформа 1С не умеет оптимизировать запросы.

Если вы не можете обновить платформу 1С, но используете современный SQL Server, рекомендуем изменить режим совместимости (Compatibility Level) в свойствах базы данных.

Порядок действий:

  1. Откройте Management Studio.
  2. Нажмите правой кнопкой на базу данных 1С -> Свойства -> Параметры (Options).
  3. Найдите поле Compatibility Level.
  4. Если на старом сервере (SQL 2012) все работало быстро, попробуйте установить уровень SQL Server 2012 (110).

Это заставит новый SQL Server использовать старые алгоритмы построения планов запросов, которые были "понятны" и эффективны для старой версии платформы 1С.

7. Дисковая подсистема

Хотя в данном случае проблема решилась настройками процессора, нельзя забывать про диски. Использование RAID 10 на SSD — это хорошее решение, но в виртуальной среде важно, как эти диски проброшены.

Для максимальной производительности баз данных рекомендуется разносить файлы данных (.mdf), файлы журналов транзакций (.ldf) и системную базу tempdb на разные физические или логические диски. Это снижает конкуренцию за очередь ввода-вывода.

Заключение

Медленная работа 1С на новом оборудовании — проблема комплексная. Но практика показывает, что в 80% случаев при переходе на серверные платформы виноваты настройки энергосбережения. Давайте подведем итог, что нужно проверить в первую очередь:

  1. Запустить тест Гилёва и сравнить результаты.
  2. Переключить BIOS сервера в режим Maximum Performance.
  3. Установить план электропитания Windows в High Performance.
  4. Если используется виртуализация — настроить резервирование памяти и чувствительность к задержкам.
  5. Проверить режим совместимости базы данных SQL.

Применяя эти настройки последовательно, мы можем добиться того, чтобы мощное серверное железо действительно работало быстро, оправдывая вложенные в него средства.

← На главную