Перерыл кучу инфы, что то не нашел ответ, либо плохо ищу.
Есть Django 3.2, есть postgres, есть куча прямых SQL запросов чере
with connection.cursor() as cursor:
cursor.execute
То есть, закрытие соединения на уровне кода..
У psql настроено 300 соединений
Стоит настройка
SET SESSION idle_in_transaction_session_timeout = '2min';
Пробовал в setting поставить
CONN_MAX_AGE = 120
Думал может будет держать соединение...
Но нет,
IDLE соединения копятся очень быстро, достигая лимита...
Помогает либо сброс соединений, с выборкой idle > 5 минут
SELECT pg_terminate_backend(pid)
FROM inactive_connections
WHERE rank > 1;
либо ребут psql, если даже выше не получается...
idle соединения могут висеть долго, такое чувство, что все же не сбрасываются автоматом.
Как проверить.. не знаю.