提问人:BaoTrung Tran 提问时间:11/11/2023 最后编辑:Jim MorrisonBaoTrung Tran 更新时间:11/18/2023 访问量:58
如何在谷歌云上选择postgres的正确值max_connections
How to choice correct value max_connections of postgres on google cloud
问:
我在谷歌上使用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是多少?
答:
如果未设置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。
评论