Я использую Postgres с Sequelize как интерфейс ORM/query. В последнее время мы стали бить некоторые ошибки:В чем разница между пулом соединений и max_connections?
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
? - Имеет ли каждое соединение в бассейне 1 счет из
max_connections
? - Означает ли это, что пул max всегда должен быть меньше, чем
max_connections
? - Опустив тайм-аут простоя в бассейне, вы поможете свободным соединениям быстрее?
Спасибо! Это было очень полезно. Мы не используем героку, наши приложения развернуты на EC2. –
@SankethKatta Конечно, спасибо :) – Jordon