← Назад к вопросам

Масштабирование системы 1С при 300+ пользователях

3.0 Senior🔥 81 комментариев
#Опыт и софт-скиллы#СУБД и хранение#Стандарты разработки

Условие

Опишите, как организовать работу системы 1С при количестве одновременных пользователей более 300.

Необходимо рассмотреть:

  1. Архитектуру серверов (кластер, несколько рабочих серверов)
  2. Настройку СУБД (PostgreSQL/MS SQL)
  3. Балансировку нагрузки
  4. Оптимизацию конфигурации
  5. Мониторинг производительности

Задание

Предложите архитектуру и опишите основные настройки для обеспечения стабильной работы.

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Масштабирование 1С при 300+ пользователях

Архитектура кластера

┌─────────────────┐
│ Load Balancer   │
│ (Nginx/HAProxy) │
└────────┬────────┘
         │
    ┌────┴────┬────────┬────────┐
    ↓         ↓        ↓        ↓
[РС-1]    [РС-2]   [РС-3]   [РС-4]
Лаготки   Отчёты  Документы Синхро
  100ч      75ч      75ч      50ч
    │         │        │        │
    └─────────┴────────┴────────┘
              ↓
        ┌─────────────┐
        │  PostgreSQL │
        │   Replica   │
        └─────────────┘
              ↑
        ┌─────────────┐
        │  PostgreSQL │
        │   Master    │
        └─────────────┘

1. Рабочие серверы (Application Servers)

Количество: 4-6 серверов по 8+ ядер, 32GB RAM

Специализация:

  • РС для форм: обработка пользовательских действий
  • РС для отчётов: тяжёлые аналитические запросы
  • РС для документов: проведение, синхронизация
  • РС резерв: для failover

2. СУБД (PostgreSQL/MS SQL)

Master node:

-- Параметры оптимизации
shared_buffers = 8GB              -- 25% памяти
effective_cache_size = 24GB       -- 75% памяти
work_mem = 128MB                  -- Per-operation
maintenance_work_mem = 2GB
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1            -- SSD
effective_io_concurrency = 200    -- SSD

-- Репликация
wal_level = replica
max_wal_senders = 10
wal_keep_segments = 64

Replica node: синхронная репликация, используется для читаемых отчётов.

3. Балансировка нагрузки

Логика распределения:
- Форма редактирования → РС-1 (sticky session)
- Отчёт → РС-2 (можно менять)
- Проведение → РС-3 (с блокировками)
- Синхронизация → РС-4 (background)

Настройка Nginx:
upstream 1c_servers {
    server rs1:1543 weight=30;
    server rs2:1543 weight=25;
    server rs3:1543 weight=25;
    server rs4:1543 weight=20;
    keepalive 32;
}

server {
    listen 80;
    location / {
        proxy_pass http://1c_servers;
        proxy_set_header Connection "";
    }
}

4. Оптимизация конфигурации

Индексы: созданы по всем измерениям регистров Кэширование: Redis для кэша сеанса Пулинг соединений: использование пула BCP400

// Конфиг server.1cd
HTTPServer=yes
Port=1543
MaxConnectCount=200    // максимум одновременных
DefaultNOfDBConn=50    // по умолчанию на сеанс
DBConnPoolSize=100     // пул соединений

5. Мониторинг

Метрики:

  • CPU на РС (целевой: < 70%)
  • Память (целевой: < 80%)
  • Сетевая полоса пропускания
  • Latency запросов к БД
  • Количество открытых соединений

Инструменты:

Prometheus + Grafana
Datadog
New Relic

1С встроенный мониторинг: Меню: Администрирование → Кластер → Сеансы → Активность

Практический чеклист

✅ 4-6 рабочих серверов ✅ Master-Replica PostgreSQL ✅ Load Balancer (Nginx/HAProxy) ✅ Индексы по всем измерениям ✅ Кэширование результатов ✅ Мониторинг CPU/RAM/DB ✅ Резервное копирование ✅ Fail-over политика

Результат

При правильной архитектуре система 1С может обслуживать 300+ одновременных пользователей с временем ответа < 2 секунд.

Масштабирование системы 1С при 300+ пользователях | PrepBro