Sequelize + postgres,如何计算连接池大小?
Sequelize + postgres, how to calculate Connection Pool size?
在我们的 nodejs 应用程序中,我们开始出现 SequelizeConnectionAcquireTimeoutError
错误。目前我们使用默认的 sequelize 连接设置:
{
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
如何选择最大池的最佳值?
我在蚂蚁网站上搜索了很多类似的问题,但找不到这个问题的具体答案。我将 sequelize 与 postgres 结合使用,这是我在 Pg wiki 上找到的唯一、最明智的信息:
https://wiki.postgresql.org/wiki/Number_Of_Database_Connections
“How to Find the Optimal Database Connection Pool Size”段落在哪里,答案(简而言之):
一个多年来在许多基准测试中表现良好的公式是,为了获得最佳吞吐量,活动连接数应该接近 ((core_count * 2) + effective_spindle_count).
我在堆栈溢出上发现了非常相似的主题,它可以帮助提供我的问题的上下文 - 但没有答案。
Nodejs, Optimal parameters for sequelize connection pool?
PostgreSQL Wiki 中的公式假设连接池中的会话永远不会空闲,因此限制可能太低。我提出了一个改进的公式 in my blog.
问题是,对于 v14 之前的 PostgreSQL 版本,很难估计您的事务时间有多少是花在等待客户端上的。您将不得不进行试验。
连接池的大小应该足够小,即使所有连接都在使用中,数据库也不会过载。活动连接数永远不应超过数据库计算机中的核心数。
在我们的 nodejs 应用程序中,我们开始出现 SequelizeConnectionAcquireTimeoutError
错误。目前我们使用默认的 sequelize 连接设置:
{
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
如何选择最大池的最佳值?
我在蚂蚁网站上搜索了很多类似的问题,但找不到这个问题的具体答案。我将 sequelize 与 postgres 结合使用,这是我在 Pg wiki 上找到的唯一、最明智的信息: https://wiki.postgresql.org/wiki/Number_Of_Database_Connections
“How to Find the Optimal Database Connection Pool Size”段落在哪里,答案(简而言之):
一个多年来在许多基准测试中表现良好的公式是,为了获得最佳吞吐量,活动连接数应该接近 ((core_count * 2) + effective_spindle_count).
我在堆栈溢出上发现了非常相似的主题,它可以帮助提供我的问题的上下文 - 但没有答案。 Nodejs, Optimal parameters for sequelize connection pool?
PostgreSQL Wiki 中的公式假设连接池中的会话永远不会空闲,因此限制可能太低。我提出了一个改进的公式 in my blog.
问题是,对于 v14 之前的 PostgreSQL 版本,很难估计您的事务时间有多少是花在等待客户端上的。您将不得不进行试验。
连接池的大小应该足够小,即使所有连接都在使用中,数据库也不会过载。活动连接数永远不应超过数据库计算机中的核心数。