Возможно ли реализовать крупный проект на 1С для 1500 пользователей и как правильно спланировать архитектуру?

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

При проектировании высоконагруженных информационных систем перед специалистами часто возникает вопрос о технологических пределах платформы 1С:Предприятие 8. Рассмотрим сценарий, при котором необходимо обеспечить одновременную работу 1500 активных пользователей, ежедневно создающих около 15 000 и просматривающих порядка 234 000 документов. Проанализируем технические возможности платформы, возможные риски типовых конфигураций, а также разберем по шагам правильную серверную архитектуру для обеспечения высокой производительности и отказоустойчивости.

1. Оценка производительности платформы и риски выбранной конфигурации

Выясним главный вопрос: потянет ли платформа 1С подобную нагрузку? Ответ — да, платформенных ограничений для 1500 пользователей нет. В мировой практике существуют внедрения 1С на 3000–5000 и более одновременных сеансов. Однако производительность системы определяется не только платформой, но и архитектурой выбранной конфигурации.

Проанализируем потенциальное узкое место проекта — использование типовых конфигураций фискального учета, таких как Бухгалтерия для Казахстана или Бухгалтерия предприятия. При интенсивном оперативном вводе данных 1500 пользователями возникают следующие проблемы:

  1. Блокировки регистра бухгалтерии: Объект РегистрБухгалтерии (в частности, таблица итогов хозрасчетного регистра) рассчитан на регламентированный учет, а не на высокую транзакционную оперативную нагрузку (OLTP). При одновременной записи сотен пользователей возникают системные ожидания на блокировках.
  2. Разрастание таблиц и тяжелые отчеты: При накоплении десятков миллионов записей построение аналитических отчетов за длительные периоды начинает сдерживать работу всей базы данных.

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

Оперативную работу пользователей (оформление первичных документов, продажи, закупки) необходимо перенести в специализированную оперативную систему (например, 1С:ERP или 1С:Управление торговлей). Контур регламентированного учета (1C:Бухгалтерия) изолируется и заполняется асинхронно через службы интеграции или брокеры сообщений (RabbitMQ, Kafka), где документы создаются сводными пакетами в фоновом режиме.

2. Выбор редакции СУБД и оптимизация MS SQL Server

Для высоконагруженных систем выбор СУБД имеет решающее значение. Проанализируем настройки базы данных на примере Microsoft SQL Server:

  1. Редакция СУБД: Использовать необходимо строго редакцию Enterprise Edition. Редакция Standard имеет жесткое ограничение в 128 ГБ оперативной памяти и лимит по используемым вычислительным ядрам процессора, что станет критическим узким местом при таком объеме данных.
  2. Режим версионирования (RCSI): Для базы 1С в MS SQL Server обязательно включаем режим Read Committed Snapshot Isolation. Это исключает блокировки таблиц при чтении данных (формировании отчетов), позволяя операциям записи и чтения не мешать друг другу.

Настроить режим RCSI для базы данных можно выполнением следующего SQL-скрипта:


ALTER DATABASE [Имя_Базы_1С] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [Имя_Базы_1С] SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE [Имя_Базы_1С] SET MULTI_USER;
  1. Ограничение параллелизма (MAXDOP): Параметр Max Degree of Parallelism на уровне экземпляра SQL Server следует ограничить значениями 1, 2 или 4. Это предотвратит создание взаимных блокировок (Deadlocks) при параллельном выполнении сложных запросов платформы 1С.
  2. Оптимизация TempDB: Системная база TempDB активно используется 1С для промежуточных вычислений и временных таблиц. Необходима разметка `TempDB` на 8–16 файлов данных одинакового размера с размещением на быстрейших накопителях (NVMe SSD).
  3. Управление памятью: Ограничьте параметр Max Server Memory, оставив 10–20% физической ОЗУ сервера под нужды операционной системы и сторонних служб.

3. Требования к лицензированию и настройка кластера 1С

Для обеспечения работы 1500 сеансов требуется использование лицензий уровня 1С:Предприятие КОРП. Проф-лицензии не содержат механизмов, необходимых для систем подобного масштаба.

Преимущества КОРП-лицензий для крупного кластера:

  1. Тонкое распределение нагрузки между рабочими процессами rphost.
  2. Автоматическое назначение и запуск сервисов кластера на разных серверах (резервирование кластера).
  3. Ограничение объема памяти, занимаемого процессами rphost, и их безопасный автоматический перезапуск без обрыва сеансов пользователей.
  4. Настройка выделенных серверов под фоновые и регламентные задания (изоляция тяжелых расчетов от пользовательских сеансов).
  5. Фоновое обновление конфигурации базы данных.

При организации кластера 1С рекомендуется разделить физические серверы по назначению и не огранивать систему одним монолитным рабочим процессом rphost. Распределим роли внутри кластера:

Выделяются минимум два центральных сервера с менеджерами кластера rmngr для обеспечения отказоустойчивости (Failover). Рабочие процессы rphost распределяются по рабочим узлам с расчетом около 150–200 сеансов на один процесс `rphost` для предотвращения критических падений при утечках памяти.

4. Серверная архитектура и сетевое взаимодействие

Разберем конфигурацию физического/виртуального оборудования. Категорически не рекомендуется совмещать Сервер 1С и Сервер СУБД на одной физической машине при нагрузке свыше 200–300 пользователей.

Рекомендуемая физическая схема:

  1. СУБД (MS SQL Server): Отдельный физический сервер с максимальной частотой ядер (процессоры линейки Intel Xeon Gold/Platinum или AMD EPYC), большим объемом ОЗУ и высокоскоростными SSD/NVMe дисками в RAID 10.
  2. Кластер серверов 1С:Предприятие: Отдельная группа физических или виртуальных серверов (минимум 2–3 узла). Для 1С важна высокая однопоточная производительность процессоров (высокая базовая частота в ГГц).
  3. Сетевой канал: Между серверами 1С и СУБД должен быть проложен выделенный сетевой канал с пропускной способностью не менее 10 Gbit/s и минимальными задержками (ping < 1 мс).
  4. Веб-серверы и публикация: Для подключения 1500 тонких клиентов через веб-сервер создается ферма веб-серверов IIS или Apache из 2–3 машин. Пред ними устанавливается балансировщик нагрузки (например, Nginx или HAProxy), обеспечивающий распределение трафика и терминирование SSL-соединений.

5. Метод контроля производительности и нагрузочное тестирование

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

Сформулируем правила подготовки к запуску:

  1. Использование КИП (Корпоративный инструментальный пакет): Применяется инструмент Тест-центр для эмуляции работы 1500 виртуальных пользователей. Сценарий тестирования должен повторять реальные действия операторов: проведение накладных, просмотр списков, формирование отчетов.
  2. Мониторинг по методике APDEX: Оценка работы системы должна базироваться не на проценте загрузки CPU, а на индексе APDEX. Измеряется время выполнения ключевых бизнес-операций (например, проведение документа не должно превышать 2 секунд для 95% пользователей).
  3. Анализ узких мест: Инструмент Центр контроля производительности (ЦКП) позволяет находить долгие SQL-запросы, эскалации блокировок и некорректные алгоритмы в коде конфигурации до запуска системы в продакшн.

Таким образом, реализовать крупный проект на 1С:Предприятие 8 для 1500 пользователей абсолютно реально. Успех проекта зависит от корректного проектирования архитектуры, выделения СУБД на отдельное железо, использования КОРП-платформы и глубокой оптимизации конфигурации под высокую транзакционную нагрузку.

← На главную