postgres数据库的最大最大连接数是多少?

问题描述 投票:0回答:1

我当前正在sequelize中使用默认连接池,如下所示:

const defaultPoolingConfig = {
  max: 5,
  min: 0,
  idle: 10000,
  acquire: 10000,
  evict: 10000,
  handleDisconnects: true
};

最近,由于上述数据库配置,我收到了这些错误ResourceRequest timed out。根据some答案,最大池应设置为5,但面对上述资源超时,错误的those建议将池大小增加到30,同时增加获取时间。

我需要知道Web应用程序的最大池大小的最佳值是什么。

编辑:假设我有200个并发用户,而我有20个并发查询。那应该是什么值呢?

postgresql sequelize.js connection-pooling
1个回答
0
投票

并发连接的数量应足够大,以使您可以拥有并发运行的查询或事务的数量。

如果您有一个较低的限制,那么新的查询/事务将不得不等待可用的连接。

您可能希望监视当前正在运行的查询(例如,请参阅pg_stat_activity,以检测此类问题。

但是,您的数据库服务器必须能够处理连接数。如果您使用的是第三方提供的服务器,则可能已设置限制。如果您使用自己的服务器,则需要正确配置它。

请注意,要处理更多的连接,您的数据库服务器将需要更多的进程和更多的RAM。另外,如果它们长时间运行queries(而不是事务),那么您很可能在服务器上受到资源限制(通常是I / O绑定),并且添加更多同时运行的查询通常会获胜对整体性能没有帮助。您可能要查看数据库服务器的配置(缓冲区等),当然,如果尚未配置,请优化查询(确保它们都使用索引)。其他pg_stat_*视图和EXPLAIN是您的朋友。

如果您的事务长时间运行且有很多空闲时间,则可能会有更多的并发连接,尽管您可能想知道为什么会有如此长时间的事务。

© www.soinside.com 2019 - 2024. All rights reserved.