错误:抱歉,已经有太多客户了
Posted
技术标签:
【中文标题】错误:抱歉,已经有太多客户了【英文标题】:Error: sorry, too many clients already 【发布时间】:2018-11-29 12:27:24 【问题描述】:我在我的 NodeJS 后端服务中使用 PostgreSQL。突然之间,当我启动服务时,我面临以下错误
connection error error: sorry, too many clients already.
PostgresSQL 连接配置
const pg = require(“pg”);
const client = new pg.Client(
host: “txslmxxxda6z”,
user: “mom”,
password: “mom”,
db: “mom”,
port: 5025
);
由于上述错误,我无法查询数据库。我无法解决这个问题。能否请您提出解决方案
【问题讨论】:
关闭一些数据库连接,使您低于max_connections
。
关闭长时间空闲的空闲连接..
你能建议我怎么做吗
【参考方案1】:
以下查询将为您提供帮助。
select max_conn,used,res_for_super,max_conn-used-res_for_super res_for_normal
from
(select count(*) used from pg_stat_activity) t1,
(select setting::int res_for_super from pg_settings where name=$$superuser_reserved_connections$$) t2,
(select setting::int max_conn from pg_settings where name=$$max_connections$$) t3
【讨论】:
谢谢。我可以看到连接的详细信息,但请建议我如何释放这些连接以再次运行服务 SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE state= '我遇到了同样的问题,“抱歉,客户已经太多了。请求超时”。 我设法解决了它。 您可以尝试一些方法
1)第一个可以增加最大连接数和sequilize中的其他设置比如
max: 95, //maximum connection which postgresql or mysql can intiate min: 0, //maximum connection which postgresql or mysql can intiate acquire:20000, // time require to reconnect idle: 20000, // get idle connection evict:10000 // it actualy removes the idle connection
2)。第二种方法是使用 timescaledb,因为有时对于复杂的查询,我们会遇到 timescale 数据的超时错误,您可以设置 timescaledb,以便运行复杂的数据库查询。 您还可以根据您的服务器要求为 postgres 设置最大客户端。
https://github.com/timescale/timescaledb-tune
【讨论】:
我只是改进了我上面的帖子。在连接池中使用“evict”,因为“idle”只是获得空闲连接。实际上“驱逐”删除空闲连接。 默认情况下,evict是1000ms,这个值是删除空闲连接的时间,所以我认为增加这个值会在更多的时间内允许更多的空闲连接。当然,这些是配置选项,其值取决于应用程序,但是,重要的是要知道如何使用它们来改进系统。以上是关于错误:抱歉,已经有太多客户了的主要内容,如果未能解决你的问题,请参考以下文章
当我运行我的测试套件时,它们因 PSQLException 失败:致命:抱歉,已经有太多客户端了
Arval SQLException: FATAL: 抱歉,postgres 中已经有太多客户端
spring boot postgres:致命:对不起,已经有太多客户了
PostgreSQL:负载测试引发错误 - Npgsql.PostgresException:'53300:抱歉,客户端已经太多了'