沪ICP备19023181号-1
Collect from网页模板
Modified by Sprite小站

Postgres 最大连接数满了

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 条评论

    暂无评论