Часто возникает парадоксальная ситуация: организация приобретает новый, дорогостоящий сервер для 1С, системные администраторы настраивают его, переносят базы данных, но пользователи начинают жаловаться, что программа работает медленнее, чем на старом оборудовании. Интерфейс "фризит", формы открываются с задержкой, переключение между строками происходит рывками. В этой статье мы подробно разберем причины такого поведения, проанализируем настройки оборудования и программного обеспечения, а также найдем эффективные пути решения проблемы.
Первое, что нам необходимо сделать, — это перевести жалобы пользователей "все тормозит" в объективные показатели. Когда мы слышим, что "сначала открывается шапка, а потом табличная часть", это явный признак проблем с однопоточной производительностью или отзывчивостью системы.
Для объективной оценки мы рекомендуем использовать синтетические тесты. Наиболее популярным стандартом де-факто в мире 1С является тест Гилёва (TPC-1C). Он позволяет оценить скорость работы файловых операций и вычислительную мощность процессора в контексте работы платформы 1С:Предприятие.
Почему это важно?
В рассматриваемом случае тест показал критически низкие значения на "новом" сервере, несмотря на то, что железо было номинально мощным. Если тест выдает низкий балл (например, менее 30-40 попугаев для серверного варианта), значит, проблема кроется не в коде конфигурации, а в аппаратной или системной части.
Самая распространенная причина тормозов на серверном оборудовании (особенно на процессорах Intel Xeon) — это включенные по умолчанию настройки энергосбережения. Серверные платформы проектируются с прицелом на эффективность энергопотребления в дата-центрах, поэтому "из коробки" они стараются снижать частоту процессора при любой возможности.
Как это влияет на 1С?
Работа пользователя в 1С носит "взрывной" характер (bursty load). Пользователь думает минуту, потом нажимает кнопку "Провести". В этот момент требуется максимальная частота процессора. Если включено энергосбережение, процессору требуются микросекунды или даже миллисекунды, чтобы выйти из состояния сна (C-States) и поднять частоту (P-States). Для пользователя эти задержки суммируются и выглядят как "подтормаживание" интерфейса.
Решение проблемы:
Balanced или OS Controlled в режим Static High Performance (или Maximum Performance). Это заставит процессор всегда работать на максимальной базовой или турбо-частоте, не снижая ее в простое. Также рекомендуется принудительно отключить C-States (состояния глубокого сна ядер).В большинстве случаев, как и в разобранной нами ситуации, одно только это действие возвращает быстродействие системы на должный уровень.
Давайте проанализируем разницу между "старым" и "новым" железом. Часто бывает, что под "старым" сервером подразумевается мощный десктопный компьютер на базе Core i7 или i9 (например, i9-9900K), а под "новым" — сервер на базе Intel Xeon (например, E5-2667 v4).
В чем подвох?
Поэтому, если у вас небольшое количество пользователей (10–20), переход с быстрого десктопного процессора на серверный Xeon среднего уровня может визуально снизить скорость работы интерфейса.
Использование виртуализации (VMware ESXi, Hyper-V) добавляет свои накладные расходы. В норме падение производительности составляет 5–15%, но при неверных настройках оно может достигать 50%.
Если вы используете виртуальную машину для сервера 1С и SQL, обратите внимание на следующие параметры:
Latency Sensitivity в значение High. Это обеспечит эксклюзивный доступ виртуальной машины к физическим ядрам процессора и снизит задержки прерываний.Рассмотрим ситуацию, когда сервер приложения 1С и сервер баз данных MS SQL Server установлены на одной физической или виртуальной машине. В этом случае нам нужно убедиться, что они общаются максимально коротким путем.
По умолчанию обмен может идти через сетевой стек (TCP/IP), даже если обращение идет на localhost. Это лишние накладные расходы.
Что нужно сделать:
В настройках MS SQL Server (через SQL Server Configuration Manager) убедитесь, что включен протокол Shared Memory (Общая память). Это самый быстрый способ передачи данных между процессами в рамках одной ОС. При создании подключения к информационной базе в консоли администрирования 1С в качестве имени сервера базы данных лучше указывать не IP-адрес, а именно сетевое имя сервера или localhost (в зависимости от нюансов настройки), чтобы сработал механизм Shared Memory.
В разобранной ситуации использовалась довольно старая платформа 1С (8.3.11) и новый SQL Server (2019/2022). Хотя формально такая связка может работать, оптимизатор запросов нового SQL Server использует новые алгоритмы (Cardinality Estimator), под которые старая платформа 1С не умеет оптимизировать запросы.
Если вы не можете обновить платформу 1С, но используете современный SQL Server, рекомендуем изменить режим совместимости (Compatibility Level) в свойствах базы данных.
Порядок действий:
Compatibility Level.SQL Server 2012 (110).Это заставит новый SQL Server использовать старые алгоритмы построения планов запросов, которые были "понятны" и эффективны для старой версии платформы 1С.
Хотя в данном случае проблема решилась настройками процессора, нельзя забывать про диски. Использование RAID 10 на SSD — это хорошее решение, но в виртуальной среде важно, как эти диски проброшены.
Для максимальной производительности баз данных рекомендуется разносить файлы данных (.mdf), файлы журналов транзакций (.ldf) и системную базу tempdb на разные физические или логические диски. Это снижает конкуренцию за очередь ввода-вывода.
Медленная работа 1С на новом оборудовании — проблема комплексная. Но практика показывает, что в 80% случаев при переходе на серверные платформы виноваты настройки энергосбережения. Давайте подведем итог, что нужно проверить в первую очередь:
Применяя эти настройки последовательно, мы можем добиться того, чтобы мощное серверное железо действительно работало быстро, оправдывая вложенные в него средства.