Стоит ли разносить базы 1С по разным кластерам на лицензии ПРОФ и как это влияет на производительность?

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

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

Разбираем влияние количества кластеров на производительность

В рассматриваемой ситуации при создании 10 кластеров для 30 баз наблюдается проседание результатов теста Гилева на 10–15 «попугаев» (с 80–85 до 65–70). Давайте выясним причину этого явления. Каждый созданный кластер в системе 1С:Предприятие — это не просто логическая папка, а отдельный служебный процесс rmngr (менеджер кластера).

Когда мы создаем 10 кластеров, мы заставляем операционную систему поддерживать 10 процессов менеджеров. Каждый из них:

Проанализируем ситуацию с точки зрения процессора. Увеличение количества процессов приводит к росту так называемого Context Switching (переключения контекста). Процессору приходится постоянно переключаться между обслуживанием множества мелких задач разных менеджеров, что создает накладные расходы (overhead). Именно этот оверхед мы и видим в результатах однопоточного теста производительности.

Особенности лицензирования ПРОФ и миф об изоляции ресурсов

Многие администраторы ошибочно полагают, что создание разных кластеров позволит изолировать «тяжелые» базы (например, УправлениеТорговлей) от более легких (ЗУП или Бухгалтерия). Разберем, почему в лицензии ПРОФ это работает не так, как ожидается.

Ограничения лицензии ПРОФ:

  1. Отсутствие управления ресурсами: В версии ПРОФ недоступны функции «Управление потреблением ресурсов» и «Профили безопасности». Вы не можете программно ограничить количество памяти, которое может занять один rphost, или ограничить объем процессорного времени для конкретной базы.
  2. Автоматическое распределение: Сервер 1С в версии ПРОФ сам решает, когда запускать новый процесс rphost, основываясь на лимитах (128 сеансов на процесс и использование не более 12 ядер процессора на одну рабочую станцию).
  3. Общий риск: Если в одном из кластеров база запустит «кривой» запрос, который съест всю доступную память на физическом сервере, пострадают абсолютно все кластеры и все процессы rphost, так как они работают в рамках одной операционной системы без жестких лимитов КОРП-уровня.

Таким образом, создание 10 кластеров на ПРОФ-лицензии создает иллюзию порядка, но не дает реальных инструментов защиты от сбоев одной из баз.

Выбор между сетевым соединением и Shared Memory

Проанализируем аппаратную конфигурацию. Использование двух мощных серверов (Ryzen 9 7900X для 1С и Threadripper для СУБД), соединенных 10-гигабитным каналом — это отличное решение для очень больших нагрузок, но для 30 небольших баз оно может быть избыточным и даже вредным.

Для 1С критически важна latency (задержка) обмена данными между сервером приложений и СУБД. Даже в 10-гигабитной сети протокол TCP/IP вносит задержки на упаковку и распаковку пакетов, прохождение через сетевой стек ОС и драйверы сетевых карт.

Если мы разместим сервер 1С и сервер СУБД на одной физической машине, платформа сможет использовать протокол Shared Memory (общая память). Рассмотрим преимущества этого подхода:

Учитывая, что на сервере СУБД установлено 256 Гб оперативной памяти, а суммарный объем баз не превышает 80 Гб, наиболее эффективным решением будет развертывание сервера 1С непосредственно на той же машине, где находится SQL.

Рекомендованная стратегия настройки

Вместо дробления на 10 кластеров, предложим более взвешенный подход к организации работы 30 баз:

  1. Минимизация кластеров: Создадим всего 2 кластера. Один — «Рабочий», для всех производственных баз. Второй — «Тестовый», для копий и разработки. Это позволит изолировать рабочие процессы от возможных падений менеджера кластера при экспериментах программистов.
  2. Использование нескольких служб (Instances): Если действительно нужна изоляция ресурсов на уровне ОС без лицензии КОРП, правильнее будет запустить две отдельные службы Windows для сервера 1С на разных портах (например, 1540 и 2540). Каждая служба будет иметь свой собственный набор процессов, и вы сможете (через настройки ОС) даже привязать их к разным ядрам процессора.
  3. Настройка СУБД: При объединении серверов важно ограничить Max Server Memory для SQL Server, чтобы он оставлял достаточно места (например, 32-64 Гб) для работы процессов rphost и операционной системы.
  4. Оптимизация электропитания: Для процессоров Ryzen крайне важно установить в Windows схему «Высокая производительность» и в BIOS отключить параметры энергосбережения (C-States), так как динамическое изменение частоты ядер мгновенно «просаживает» однопоточные тесты 1С.

Резюме по объектам и методам контроля

Для контроля за состоянием системы после настройки рекомендуем использовать следующие инструменты:

Помните, что в мире 1С «проще» часто означает «быстрее». Избыточная сложность архитектуры на лицензиях ПРОФ только увеличивает вероятность ошибок администрирования и снижает общую отзывчивость системы для конечных пользователей.

← На главную