Архитектура и устройство серверной 1С:Предприятие 8 — это трехзвенная система, спроектированная для обеспечения высокой отказоустойчивости, масштабируемости и производительности при работе с большими объемами данных.
Ниже представлена подробная статья, описывающая внутреннее устройство, компоненты и принципы функционирования серверной части 1С.
Архитектурная концепция
В основе клиент-серверного варианта 1С:Предприятия лежит трехзвенная архитектура, которая разделяет систему на три независимых уровня:
- Клиентское приложение (Тонкий, Толстый или Веб-клиент). Отвечает только за отображение интерфейса и взаимодействие с пользователем.
- Кластер серверов 1С:Предприятия. Центральное звено, где исполняется вся бизнес-логика, управляются сеансы и распределяются задачи.
- Сервер баз данных (СУБД). Отвечает за физическое хранение, выборку и модификацию данных (MS SQL Server, PostgreSQL, IBM DB2 или Oracle Database).
Такое разделение позволяет разгрузить клиентские рабочие станции и минимизировать сетевой трафик, так как между клиентом и сервером 1С передаются только управляющие команды и готовые результаты, а не сырые таблицы данных.
Устройство кластера серверов 1С
Кластер серверов 1С — это совокупность рабочих процессов, запущенных на одном или нескольких компьютерах (рабочих серверах), которые функционируют как единое целое.
Основные программные компоненты кластера:
- Агент сервера (ragent). Это системная служба (сервис в Windows или демон в Linux), которая запускается на каждом физическом сервере кластера. Агент отвечает за запуск, остановку и мониторинг рабочих процессов, а также за поддержание связи между серверами внутри кластера.
- Менеджер кластера (rmngr). Главный управляющий модуль, который координирует работу всего кластера, ведет списки информационных баз, управляет сессиями пользователей, распределяет нагрузку между рабочими процессами, блокирует объекты и исполняет фоновые/регламентные задания. По умолчанию создается один менеджер, но для отказоустойчивости их может быть несколько.
- Рабочие процессы (rphost). Самый нагруженный компонент. Именно внутри rphost выполняются сеансы пользователей, обрабатывается программный код конфигураций, осуществляются запросы к СУБД и генерируются отчеты. Один rphost может обслуживать множество пользовательских соединений. При необходимости система автоматически запускает дополнительные процессы rphost для балансировки нагрузки.
Механизм взаимодействия и жизненный цикл запроса
Когда пользователь совершает действие в программе (например, проводит документ), система проходит следующий цикл:
- Клиент формирует запрос и отправляет его на менеджер кластера (rmngr) через сетевой протокол TCP/IP.
- Менеджер кластера определяет, какой рабочий процесс (rphost) наименее загружен или закреплен за данной информационной базой, и перенаправляет запрос туда.
- Рабочий процесс (rphost) принимает запрос, транслирует внутренний код 1С во встроенный язык запросов СУБД и отправляет запрос на сервер СУБД.
- Сервер СУБД выполняет выборку или запись данных на дисковую подсистему и возвращает результат процессу rphost.
- rphost обрабатывает полученные данные, кэширует их при необходимости, формирует понятный для клиента ответ и передает его обратно на клиентское приложение.
Ключевые сервисы внутри кластера
Кластер 1С — это не просто маршрутизатор запросов, а комплекс внутренних сервисов:
- Сервис блокировок. Управляет объектными и транзакционными блокировками, предотвращая одновременное изменение одних и тех же данных разными пользователями.
- Сервис заданий. Отвечает за запуск регламентных процедур (расчет себестоимости, обновление индексов, загрузка курсов валют) в фоновом режиме, не прерывая работу пользователей.
- Сервис журналов регистрации. Фиксирует все действия пользователей и системные события.
- Сервис сеансов. Хранит информацию о текущем состоянии каждого подключенного пользователя.
Масштабируемость, балансировка и отказоустойчивость
Современные версии 1С обладают продвинутыми механизмами масштабирования:
- Динамическая балансировка. Менеджер кластера в реальном времени анализирует загрузку процессора и расход оперативной памяти каждым процессом rphost. Новые пользователи автоматически подключаются к наименее загруженным процессам.
- Отказоустойчивость. В кластер можно объединить несколько физических серверов. При выходе из строя одного сервера менеджер автоматически переведет пользователей на оставшийся сервер без потери данных сессии (при условии настроенного резервирования процессов).
- Профили безопасности и требования функциональности. Администратор может жестко задать правила: например, указать, чтобы фоновые задания выполнялись только на сервере №2, а пользователи работали исключительно на сервере №1.
Оптимальные требования к оборудованию.
Для стабильной работы серверной 1С критически важны три компонента:
- Процессор. Для 1С важнейшим фактором является высокая тактовая частота ядра (желательно от 3.5 ГГц и выше), а не общее количество ядер. Большинство операций 1С выполняются в один поток, поэтому быстрые ядра важнее их количества.
- Оперативная память. Сервер 1С активно кэширует данные. Нехватка памяти приводит к сбросу кэша на диск и, соответственно, замедлению работы системы. На каждый рабочий процесс rphost рекомендуется закладывать от 4 до 8 ГБ памяти и заложить запас под нужды ОС и СУБД.
- Дисковая подсистема. Базы данных критичны к скорости чтения/записи (IOPS). Настоятельно рекомендуется использовать NVMe SSD накопители в RAID-массивах для размещения баз данных СУБД, темповых файлов (tempdb) и кэша 1С.
Заключение
Серверная архитектура 1С:Предприятие 8 представляет собой гибкий и мощный инструмент промышленного класса. Понимание принципов взаимодействия ragent, rmngr, rphost и СУБД позволяет системным администраторам и разработчикам правильно диагностировать проблемы с производительностью, корректно настраивать кластеры под высокие нагрузки и обеспечивать непрерывность бизнес-процессов компании.
Настроим серверную 1С под ваши задачи: от подбора оборудования до оптимизации кластера и обеспечения отказоустойчивости. Обращайтесь: +7(495) 989-22-16, sales@rg-spc.ru.
Подписаться на наши социальные сети: