【发布时间】:2017-01-03 17:22:25
【问题描述】:
我使用 Postgres 和 Sequelize 作为 ORM / 查询接口。最近我们开始遇到一些错误:
SequelizeConnectionError: remaining connection slots are reserved for non-replication superuser connections
调查一下,问题似乎与为 Postgres 设置的连接限制有关,但我在弄清楚如何将客户端池设置与 Postgres 设置相关联时遇到了一些麻烦:
在我的 postgres 9.4 数据库(在 Amazon RDS 上)上,我的 max_connections 默认为 26:
SELECT name, setting FROM pg_settings WHERE name='max_connections';
+-----------------+---------+
| name | setting |
+-----------------+---------+
| max_connections | 26 |
+-----------------+---------+
在 Sequelize 中,我将池设置为:
pool: {
max: 10,
min: 0,
idle: 10000
},
一些问题:
- 一般来说,池与
max_connections有什么关系? - 池中的每个连接是否从
max_connections中取出 1 个计数? - 这是否意味着池最大值必须始终小于
max_connections? - 降低池中的空闲超时是否有助于更快地释放连接?
【问题讨论】:
标签: database postgresql sequelize.js amazon-rds