如何在谷歌云上选择正确的postgres max_connections 值

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

我在谷歌上使用 postgres 云。当我使用默认配置创建 postgres 时,如果多个用户连接(例如:10 个用户),它总是会抛出错误

remaining connection slots are reserved for non-replication superuser connections
sorry, too many clients already :: proc.c:360

当我max_connections = 300时就可以了。错误不抛出。但我很困惑为什么当用户数量增加时 google postgres 不扩展最大连接。

我有一个问题: 为什么应用程序总是抛出错误抱歉,如果我没有设置值max_connections,客户端已经太多了? 当我的应用程序投入生产时,如何知道一次最大连接访问数?如果我没有设置默认的 max_connections ,postgres 的默认 max_connections 是多少?

postgresql google-cloud-platform google-cloud-datastore typeorm google-cloud-sql
1个回答
0
投票

当您不设置 max_connections 时,系统将使用默认值。如果默认连接值不够,您将收到错误。默认值通常为 100 个连接。正如本文档中提到的

max_connections 自动计算,当您创建 Cloud SQL for PostgreSQL 实例时,机器类型配置设置会根据您选择的核心数量自动调整可用内存大小的范围。这也确定了为实例设置的初始默认连接限制。

您可以通过连接到数据库并运行以下命令来查找实例的连接限制:

SELECT \* FROM pg\_settings WHERE name = 'max\_connections';

要确定可以为此标志设置的最大值,您必须首先计算已在使用的后端连接数。此计算是 max_connections(最大客户端连接数)、autovacuum_max_workers(最大 autovacuum 进程数)和 max_worker_processes 值的总和。总和不能超过262142。

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