При переходе с файлового варианта работы на клиент-серверный перед системными администраторами часто встает вопрос архитектурного планирования. Одной из популярных идей является создание множества кластеров внутри одного сервера 1С для «изоляции» баз друг от друга. Однако, как показывает практика и технические тесты, такой подход может не только не принести ожидаемой стабильности, но и существенно снизить общую производительность системы. Рассмотрим эту ситуацию подробно, проанализируем причины падения показателей в тестах и определим оптимальную стратегию настройки сервера.
В рассматриваемой ситуации при создании 10 кластеров для 30 баз наблюдается проседание результатов теста Гилева на 10–15 «попугаев» (с 80–85 до 65–70). Давайте выясним причину этого явления. Каждый созданный кластер в системе 1С:Предприятие — это не просто логическая папка, а отдельный служебный процесс rmngr (менеджер кластера).
Когда мы создаем 10 кластеров, мы заставляем операционную систему поддерживать 10 процессов менеджеров. Каждый из них:
rphost.Проанализируем ситуацию с точки зрения процессора. Увеличение количества процессов приводит к росту так называемого Context Switching (переключения контекста). Процессору приходится постоянно переключаться между обслуживанием множества мелких задач разных менеджеров, что создает накладные расходы (overhead). Именно этот оверхед мы и видим в результатах однопоточного теста производительности.
Многие администраторы ошибочно полагают, что создание разных кластеров позволит изолировать «тяжелые» базы (например, УправлениеТорговлей) от более легких (ЗУП или Бухгалтерия). Разберем, почему в лицензии ПРОФ это работает не так, как ожидается.
Ограничения лицензии ПРОФ:
rphost, или ограничить объем процессорного времени для конкретной базы.rphost, основываясь на лимитах (128 сеансов на процесс и использование не более 12 ядер процессора на одну рабочую станцию).rphost, так как они работают в рамках одной операционной системы без жестких лимитов КОРП-уровня.Таким образом, создание 10 кластеров на ПРОФ-лицензии создает иллюзию порядка, но не дает реальных инструментов защиты от сбоев одной из баз.
Проанализируем аппаратную конфигурацию. Использование двух мощных серверов (Ryzen 9 7900X для 1С и Threadripper для СУБД), соединенных 10-гигабитным каналом — это отличное решение для очень больших нагрузок, но для 30 небольших баз оно может быть избыточным и даже вредным.
Для 1С критически важна latency (задержка) обмена данными между сервером приложений и СУБД. Даже в 10-гигабитной сети протокол TCP/IP вносит задержки на упаковку и распаковку пакетов, прохождение через сетевой стек ОС и драйверы сетевых карт.
Если мы разместим сервер 1С и сервер СУБД на одной физической машине, платформа сможет использовать протокол Shared Memory (общая память). Рассмотрим преимущества этого подхода:
Учитывая, что на сервере СУБД установлено 256 Гб оперативной памяти, а суммарный объем баз не превышает 80 Гб, наиболее эффективным решением будет развертывание сервера 1С непосредственно на той же машине, где находится SQL.
Вместо дробления на 10 кластеров, предложим более взвешенный подход к организации работы 30 баз:
Max Server Memory для SQL Server, чтобы он оставлял достаточно места (например, 32-64 Гб) для работы процессов rphost и операционной системы.Для контроля за состоянием системы после настройки рекомендуем использовать следующие инструменты:
Консоль администрирования серверов 1С: мониторинг количества сеансов и нагрузки на процессы rphost.PerfMon (Счетчики производительности Windows): отслеживание очередей к процессору и диску.Тест Гилева: запуск после каждого изменения (изменение схемы питания, перенос на Shared Memory) для фиксации динамики.Помните, что в мире 1С «проще» часто означает «быстрее». Избыточная сложность архитектуры на лицензиях ПРОФ только увеличивает вероятность ошибок администрирования и снижает общую отзывчивость системы для конечных пользователей.