Вопрос оптимального размещения серверов 1С и SQL Server является фундаментальным при проектировании ИТ-инфраструктуры предприятия. Часто перед системными администраторами встает дилемма: использовать ли преимущества виртуализации или отдать предпочтение "голому железу" (Bare Metal), а также стоит ли разносить эти роли по разным физическим серверам. В данной статье мы подробно разберем, как количество пользователей, архитектура процессоров и настройки гипервизора влияют на скорость работы 1С.
Рассмотрим ситуацию, когда в компании работает около 50–60 пользователей в конфигурациях 1С:ERP, Зарплата и управление персоналом и Бухгалтерия предприятия. На первый взгляд, виртуализация кажется идеальным решением благодаря гибкости бэкапов, быстрой миграции между хостами и удобству администрирования. Однако, проанализируем ситуацию с точки зрения "чистой" производительности.
Виртуализация всегда вносит накладные расходы (overhead). По различным оценкам, потеря производительности составляет от 10% до 20% по сравнению с физическим сервером. В критических задачах, таких как закрытие месяца в ERP, это может привести к кратному увеличению времени выполнения операций. Если на физическом сервере процедура занимает 14 часов, то в плохо настроенной виртуальной среде она может растянуться на двое суток. Это происходит из-за того, что 1С крайне чувствительна к задержкам доступа к памяти и процессору.
Разберем, почему количество ядер часто оказывается менее важным, чем тактовая частота. Архитектура 1С такова, что многие критические операции (например, проведение одного документа) выполняются в один поток. Это означает, что если у вас процессор с частотой 2.0 ГГц, то даже наличие 56 ядер не спасет систему от "подтормаживаний".
Для комфортной работы 1С:ERP и большого количества пользователей рекомендуется использовать процессоры с базовой частотой от 3.0–3.5 ГГц. Процессоры с низкой частотой (например, серверные линейки Intel Xeon Silver с 2.1 ГГц) хорошо подходят для веб-серверов или баз данных с параллельными запросами, но для сервера приложений 1С они могут стать "бутылочным горлышком".
Выясним, какой вариант размещения ролей будет более эффективным:
Shared Memory. Это позволяет обмениваться данными через оперативную память, минуя сетевой стек TCP/IP. Это самый быстрый способ взаимодействия, минимизирующий задержки.Если решение об использовании виртуализации принято, проанализируем ключевые настройки, которые помогут минимизировать потери производительности:
1. Архитектура NUMA. Современные двухпроцессорные системы используют архитектуру Non-Uniform Memory Access. Проанализируем ситуацию: если ваша виртуальная машина требует 128 ГБ ОЗУ, а физический процессор (сокет) имеет доступ только к 64 ГБ локальной памяти, гипервизору придется обращаться к памяти второго процессора. Это создает огромные задержки. Рекомендация: создавайте ВМ такого размера, чтобы она целиком помещалась внутри одного физического процессорного сокета (одного NUMA-узла).
2. CPU Reservation. В виртуальной среде часто возникает проблема "шумных соседей". Если другие виртуальные машины начнут активно потреблять ресурсы, сервер 1С будет ждать своей очереди. Чтобы этого избежать, необходимо установить параметр Reservation для CPU и RAM на 100%. Это гарантирует, что зарезервированные ресурсы не будут отданы другим ВМ ни при каких обстоятельствах.
3. Настройка электропитания в BIOS. По умолчанию серверы настроены на энергосбережение. Для 1С это губительно. Пока процессор "просыпается" и поднимает частоту Turbo Boost для выполнения короткой операции проведения документа, сама операция уже может завершиться на пониженной частоте. Необходимо выставить профиль Maximum Performance в настройках BIOS сервера.
Посмотрим на настройки SQL Server, которые критичны в виртуальной среде:
Проанализировав опыт эксплуатации систем на 50 пользователей, можно сделать следующий вывод. При текущей нагрузке (46–55 пользователей) размещение в виртуальных машинах допустимо, если физический процессор обладает достаточной частотой. Однако при росте количества пользователей до 100+ и выше, следует рассмотреть переход на следующую схему:
1С:ERP и ЗУП на разные рабочие процессы 1С для исключения взаимного влияния тяжелых расчетов.Рассмотрим пример настройки параметров в консоли администрирования серверов 1С для оптимизации нагрузки при большом количестве пользователей:
Количество ИБ на процесс = 1
Количество соединений на процесс = 25
Плечо максимума производительности = 80%
Такая структурная настройка позволит системе более плавно распределять пользователей по рабочим процессам, не допуская перегрузки отдельного экземпляра rphost. Помните, что производительность 1С — это комплексная задача, где железо, настройки ОС, настройки гипервизора и параметры самой платформы 1С должны работать синхронно.