PostgreSQL连接数过多
# 报错信息
FATAL: sorry, too many clients already
# 解释
原因是连接数太多,超过了在配置中设置的max_connections
# 查询
# 查询设置的最大链接数
show max_connections;
1
# 查询当前使用的链接数
select count(1) from pg_stat_activity;
1
# 查询空闲链接数-空闲链接数太多肯定有问题,可以使用下一条语句看那个ip使用的空闲链接数太多
select count(*) from pg_stat_activity where state='idle';
1
# 查询当前使用的链接数-按照ip分组
select count(*) , a.client_addr from pg_stat_activity a group by a.client_addr
1
# 解决办法
# - 清除所有的空闲链接-治标
SELECT pg_terminate_backend(pid) from pg_stat_activity where state='idle';
1
# - 增大数据库的最大链接数-治标
需要重启数据库
alter system set max_connections=1000;
1
# - 更改程序的最大链接数-治本
- springboot+durid
spring:
datasource
druid:
maxActive: 10
minIdle: 2
minEvictableIdleTimeMillis: 600000
maxEvictableIdleTimeMillis: 900000
- springboot+datasource
spring:
datasource:
tomcat:
maxActive: 10
minIdle: 2
minEvictableIdleTimeMillis: 600000
maxEvictableIdleTimeMillis: 900000
编辑 (opens new window)
上次更新: 2024-11-06, 19:27:10