Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

PG_53300 1С:Предприятие и СУБД

PostgreSQL Error 53300: too_many_connections — пулинг через PgBouncer

Обновлено: 25.08.2026 · Официальная документация ↗
  • Ошибка подключения: FATAL: sorry, too many clients already (SQLSTATE 53300).
  • Новые сеансы 1С:Предприятие не могут войти в информационную базу.
  • Деградация производительности из-за конкуренции за процессы ядра при тысячах прямых подключений.

1. Проверка текущих подключений и лимитов

SELECT count(*), usename, client_addr 
FROM pg_stat_activity 
GROUP BY usename, client_addr;

SHOW max_connections;
SHOW superuser_reserved_connections;

2. Временное увеличение max_connections (требует рестарта)

ALTER SYSTEM SET max_connections = 300;
-- После изменения необходим перезапуск службы PostgreSQL

3. Внедрение пулера соединений PgBouncer (Production-решение)

Установите PgBouncer для мультиплексирования тысяч клиентских сессий в десятки серверных соединений:

# Конфигурация /etc/pgbouncer/pgbouncer.ini
[databases]
* = host=127.0.0.1 port=5432 auth_user=postgres

[pgbouncer]
pool_mode = transaction
max_client_conn = 5000
default_pool_size = 50
reserve_pool_size = 10

4. Оптимизация количества соединений со стороны кластера 1С

В консоли администрирования 1С ограничьте количество рабочих процессов `rphost` и настройте параметры перезапуска спящих сеансов.

💡 Практика специалистов: Золотое правило масштабирования PostgreSQL: держите max_connections в пределах 100-300, а весь наплыв веб-клиентов и фоновых заданий агрегируйте через PgBouncer / Odyssey.

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

Почему нельзя просто установить max_connections = 5000 в PostgreSQL?

Каждое подключение в PostgreSQL — это отдельный процесс ОС с собственным потреблением RAM и накладными расходами на блокировки. Значения выше 300-500 приводят к резкому падению TPS.

Для чего нужен параметр superuser_reserved_connections?

Он резервирует указанное число слотов (по умолчанию 3) исключительно для суперпользователей (postgres), позволяя администратору подключиться к переполненной СУБД для диагностики.

Какой режим пулинга PgBouncer подходит для 1С:Предприятие?

Для 1С подходит только режим pool_mode = session (или transaction при условии отсутствия использования платформой контекстных временных таблиц и параметров сеанса).

Как закрыть неактивные висящие сессии (idle)?

Настройте параметр idle_session_timeout = '30min' в postgresql.conf для автоматического отключения забытых клиентов.

Полезные материалы
Рекомендуем