Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Гайд 1С: Настройка пула соединений СУБД в кластере серверов 1С

Обновлено: 26.08.2026  ·  Официальная база знаний
  • Ошибка Превышено максимальное количество соединений с СУБД (Too many connections).
  • Высокие накладные расходы времени на постоянное открытие и закрытие TCP-сессий с сервером базы данных.
  • Всплески задержек при старте тяжелых фоновых заданий или регламентных процедур.
  • Зависание соединений в состоянии idle in transaction на стороне PostgreSQL.

1. Архитектура и параметры пула соединений 1С

Кластер серверов 1С (процессы rphost) удерживает постоянный пул соединений к СУБД для повторного использования пользовательскими сессиями. Тонкая настройка осуществляется через параметры информационной базы в консоли администрирования или свойства кластера:

  • Количество соединений на процесс: Регулируется распределением рабочих процессов и числом информационных баз на кластер.
  • Время жизни неиспользуемого соединения: Очистка соединений, находящихся в спящем режиме.

2. Настройка параметров PostgreSQL под пул 1С

В файле postgresql.conf установите согласованные лимиты соединений:

# Максимальное число физических соединений от всех rphost + админка
max_connections = 500

# Таймаут удержания неактивных транзакций (защита от зависших сессий 1С)
idle_in_transaction_session_timeout = 600000 # 10 минут

# Контроль сетевого канала TCP
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 5

3. Тюнинг пула в MS SQL Server

В свойствах экземпляра SQL Server (Connections) проверьте значение Max number of concurrent connections (должно быть установлено в 0 — неограниченно, регулируется лицензиями и ресурсами).

Практический опыт инженера: Для высоконагруженных систем настройте в свойствах информационной базы кластера 1С параметр 'Время засыпания пассивных сеансов' (1200 сек) и 'Время удаления пассивных сеансов' (86400 сек) для предотвращения удержания соединений ночными клиентами.

Частые вопросы (FAQ)

Почему нельзя ставить max_connections в PostgreSQL с большим запасом (например, 5000)?

Каждое подключение в PostgreSQL — это отдельный процесс ОС, потребляющий фиксированный объем RAM под структуры и снижающий эффективность работы планировщика ядра при обходе таблицы блокировок procArray.

Как рассчитывается оптимальное значение max_connections для 1С?

Формула: (Количество активных rphost * Пул на процесс [обычно 30-50]) + 30 технических соединений для фоновых служб и мониторинга.

Нужно ли использовать внешний PgBouncer перед 1С?

Нет. Платформа 1С:Предприятие реализует собственный высокоэффективный внутренний пул соединений в коде rphost. Использование PgBouncer в режиме transaction pool ломает работу временных таблиц 1С (#tt), а в режиме session pool не дает преимуществ.

Как принудительно сбросить подвисшие соединения к СУБД из консоли 1С?

В консоли администрирования кластера откройте ветку 'Информационные базы' -> 'Соединения', отсортируйте по времени простоя и удалите зависшие неактивные сеансы через контекстное меню.