База данных Postgresql выдает ошибки при подключении

Я запускаю базу данных Postgresql на AWS, а бэкендом является Django. После нескольких запросов, допустим 50, он выдает ошибку "OperationalError: terminating connection due to administrator command SSL connection has been closed unexpectedly", но база данных остается активной. Сначала вылетала ошибка "OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections" после некоторых запросов, поэтому у меня есть скрипт, который закрывает открытые соединения. Вот скрипт:

export PGPASSWORD='mypassword'
psql --host=dbhost.myregion.rds.amazonaws.com --port=5432 --username=user --dbname=name \
     -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled')
AND usename != 'rdsadmin';"

, но ошибки продолжают появляться. Я также пробовал увеличить max_connections до 150, но это все равно не помогает. Я также пробовал использовать AWS RDS proxy, но все еще без надежды.

Вот как я подключаюсь к БД из django:

DATABASES = {
    'default': {
        'ENGINE': config('DB_ENGINE'),
        'NAME': config('DB_NAME'),
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': config('DB_HOST'),
        'PORT': config('DB_PORT'),
        'CONN_MAX_AGE': 0
    }
}

Ошибки, которые вы видите, вызваны вашим скриптом, который закрывает ваши соединения.

Вместо случайного уничтожения сессий устраните утечку соединений в вашем приложении (и не спрашивайте нас, как это сделать - мы не можем отлаживать вашу программу).

Вернуться на верх