Вопрос о целесообразности создания нескольких кластеров в рамках одного экземпляра службы сервера 1С часто возникает у администраторов, когда стандартная конфигурация перестает справляться с нагрузкой или когда требуется обеспечить высокую степень изоляции различных информационных баз. Разберем детально, как устроена эта технология, какие преимущества она дает и в каких ситуациях ее стоит внедрять.
rmngr и rphostДля того чтобы понять суть использования нескольких кластеров, проанализируем, как работают основные процессы сервера 1С. По умолчанию в системе создается один кластер. В рамках этого кластера функционирует менеджер кластера (rmngr) и один или несколько рабочих процессов (rphost).
Важнейшей особенностью создания дополнительного кластера является полная изоляция управляющих механизмов. Рассмотрим, что именно разделяется при создании второго кластера:
rphost): У каждого кластера будет свой собственный набор рабочих процессов. Если информационная база, находящаяся в первом кластере, вызовет критическую ошибку или утечку памяти, которая приведет к падению или зависанию процесса rphost, это никак не затронет информационные базы во втором кластере. Они продолжат работать в своих процессах.rmngr): Это "мозг" кластера, который отвечает за сервис блокировок, журналы регистрации, полнотекстовый поиск и распределение сеансов. При создании второго кластера запускается отдельный экземпляр rmngr. Выясним причину, почему это важно: если в одной из баз происходит сбой в сервисе блокировок или менеджер зависает из-за обработки огромного объема данных, соседний кластер останется полностью работоспособным.Рассмотрим ситуацию на крупном предприятии, где одновременно работают "Зарплата и кадры государственного учреждения" (ЗКГУ) и "Бухгалтерия государственного учреждения" (БГУ). Зачастую ресурсоемкие операции в ЗКГУ (например, массовый расчет зарплаты) могут негативно влиять на производительность БГУ. Разделив их по разным кластерам, мы гарантируем, что они не будут делить общие рабочие процессы.
Для обеспечения масштабируемости и отказоустойчивости мы можем использовать следующие стратегии:
Посмотрим на практическую сторону настройки. При создании второго кластера крайне важно правильно распределить сетевые ресурсы, чтобы избежать конфликтов между процессами. Проанализируем стандартную схему портов:
Для первого (стандартного) кластера порты обычно выглядят так:
154015411560-1591При создании второго кластера в той же консоли (под тем же агентом ragent), нам необходимо задать новые значения. Рекомендуется использовать следующую логику:
1641.rphost разных кластеров не конфликтовали, выделим отдельный диапазон, например, 1660-1691.Важно: При подключении к базе через тонкий или толстый клиент, в строке адреса сервера теперь обязательно нужно указывать порт нового кластера. Это выглядит так:
ИмяСервера:1641
Выясним, как тип лицензии влияет на работу с кластерами. В версии КОРП существует мощный механизм "Требований назначения функциональности". Он позволяет внутри одного кластера гибко настраивать, какие процессы будут обслуживать те или иные сервисы. В этом случае создавать несколько кластеров на одном сервере требуется значительно реже — только для глубокой изоляции сред (например, полная изоляция тестового контура).
В версии ПРО такие настройки недоступны, поэтому создание нескольких кластеров остается основным инструментом администратора для разделения ресурсов и предотвращения влияния баз друг на друга.
Разберем частый вопрос: можно ли с помощью разных кластеров запустить базы на разных версиях платформы? Ответ — нет. Все кластеры, созданные внутри одной консоли под одним агентом, работают на исполняемых файлах одной версии. Если агент сервера запущен из папки 8.3.23.XXXX, то все кластеры будут работать именно на этой версии.
Если же вам требуется запустить одну базу на версии 8.3.23, а другую на 8.3.25, вам придется устанавливать второй экземпляр службы сервера 1С как отдельный сервис Windows или Linux. В этом случае у каждого сервиса будет свой агент (ragent) со своим портом (например, 1540 и 1640).
Использование нескольких кластеров упрощает эксплуатацию системы в следующих аспектах:
reg_1541 и reg_1641). Это позволяет независимо управлять журналами регистрации, кэшем и полнотекстовым индексом.Несмотря на явные преимущества, создание большого количества кластеров создает дополнительные накладные расходы. Разберем, на что уходят ресурсы:
Каждый новый кластер — это как минимум один дополнительный процесс rmngr и один rphost (в зависимости от настроек). Даже если в базах никто не работает, эти процессы будут потреблять оперативную память. На серверах с ограниченным объемом RAM (менее 16-32 ГБ) избыточное дробление на кластеры может привести к деградации производительности из-за нехватки памяти для кэширования данных.
Подводя итог нашему анализу, создание нескольких кластеров в консоли 1С целесообразно в следующих случаях:
Создавая дополнительный кластер, всегда помните о необходимости выделения уникальных портов и учета дополнительных затрат оперативной памяти сервера.