gpt4 book ai didi

postgresql - postgres 数据库的理想最大连接数是多少?

转载 作者:行者123 更新时间:2023-12-03 22:26:11 47 4
gpt4 key购买 nike

我目前在sequelize中使用默认连接池,如下:

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

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

我需要知道网络应用程序的最大池大小的最佳值必须是多少。

编辑: 1.假设我有 200 个并发用户,我有 20 个并发查询。那么应该是什么值呢?
2.我的数据库是GCP提供的,配置如下:
vCPU
1
内存
3.75 GB
固态硬盘存储
10 GB
  • 我正在添加一些关于 CPU 利用率、每秒读/写操作和每秒事务的图表。 Transactions per second CPU Utilization
    Read / write operations
  • 我的工作负载资源如下:

    资源:
    限制:
    中央处理器:500m
    内存:600Mi
    要求:
    中央处理器:200m
    内存:500Mi
  • 最佳答案

    并发连接的数量应该足以满足您可能拥有的并发运行查询或事务的数量。

    如果您有一个下限,那么新的查询/交易将不得不等待可用的连接。

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

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

    请注意,要处理更多连接,您的数据库服务器将需要更多进程和更多 RAM。此外,如果他们长时间运行 查询 (与事务相反),那么您很可能在服务器上受到资源限制(通常受 I/O 限制),并且添加更多同时运行的查询通常不会有助于整体表现。您可能想查看数据库服务器的配置(缓冲区等),当然,如果您还没有这样做,请优化您的查询(确保它们都使用索引)。其他 pg_stat_* View 和 EXPLAIN 是您的 friend 。

    如果您有大量空闲时间的长时间运行的事务,那么更多的并发连接可能会有所帮助,尽管您可能不得不想知道为什么您有如此长时间运行的事务。

    总而言之,您的下一步应该是:

  • 使用 pg_stat_activity 和 friend 检查您的数据库服务器的即时状态。
  • 如果您还没有,请设置对 I/O、CPU、内存、交换、postgresql 统计数据随时间推移的监控。这将使您更清楚地了解服务器上正在发生的事情。如果你没有那个,你只是在瞎跑。
  • 如果您有长时间运行的事务,请检查您是否始终正确释放事务/连接,包括发生错误时。这是基于 node.js 的 Web 服务器的一个非常常见的问题。确保在任何需要的地方使用 try .. catch 块。
  • 如果有任何长时间运行的查询,请检查它们是否已正确优化(使用索引)。如果没有,请尽最大努力优化它们。如果这是问题所在,这将是您可以采取的最有用的步骤。
  • 如果 优化得当,你有足够的空闲资源(RAM、I/O...),那么你可以考虑增加连接数。否则只是毫无意义。

  • 编辑

    由于您不是自己操作数据库,因此您不一定能够了解资源使用情况。

    但是,您仍然可以:
  • 检查 pg_stat_activity 。仅此一项就可以告诉您很多事情。
  • 检查不应该保留的连接/事务
  • 检查查询是否正确优化

  • 对于 RAM 为 3.75 GiB 的实例,GCP 的默认最大并发连接数限制设置为 100。因此,您确实可以增加池的大小。但是,如果存在上述任何问题,您只是在延迟或进一步移动问题,因此请先检查这些问题并在相关时修复它们。

    关于postgresql - postgres 数据库的理想最大连接数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60147360/

    47 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com