error
remaining connection slots are reserved for non-replication superuser connections
solution
解决办法是改最大连接数,或者杀掉状态为idle的链接. 还有可能的原因是建立数据库连接后, 请求结束后没有关掉session. 慎用数据库连接池.
PSQL tool
查询当前所有空闲链接:
select datname,pid,application_name,state from pg_stat_activity where state=‘idle’ ;
查询当前所有连接数:
select count(1) from pg_stat_activity;
查询最大连接数:
show max_connections;
select current_setting(‘max_connections’);
终止空闲链接
select pg_terminate_backend(pid) from pg_stat_activity where pid<>pg_backend_pid() and state=‘idle’;
查看为超级用户保留的连接数:
show superuser_reserved_connections;
查看每个用户的而连接数:
select usename, count() from pg_stat_activity group by usename order by count() desc;
查看数据库剩余连接数:
select max_conn-now_conn as resi_conn from (select setting::int8 as max_conn,(select count(*) from pg_stat_activity) as now_conn from pg_settings where name = ‘max_connections’) t;
refer
- https://docs.sqlalchemy.org/en/20/orm/session_basics.html#what-does-the-session-do
- https://docs.sqlalchemy.org/en/20/orm/contextual.html#using-thread-local-scope-with-web-applications
评论列表,共 0 条评论
暂无评论