当前位置: 首页 > 知识库问答 >
问题:

如何提高Google Cloud SQL Postgres数据库的连接限制?

越嘉茂
2023-03-14

Google Cloud SQL PostgreSQL 数据库的连接数量相对较低。根据计划的不同,这在 25 到 500 之间,而 Google Cloud SQL 中 MySQL 的限制在 250 到 4000 之间,很快就会达到 4000。

我们目前有许多针对不同客户的试用实例在库伯内特斯上运行,并由同一个谷歌云SQLPostgres服务器提供支持。每个实例都使用一组单独的数据库、角色和连接(每个服务一个)。我们已经达到了我们计划的连接限制(50个),我们甚至还没有接近内存或cpu限制。连接池似乎不是一个选择,因为连接与不同的用户。我现在想知道为什么限制如此之低,以及是否有办法在不升级到更昂贵的计划的情况下提高限制。

共有2个答案

别永年
2023-03-14

公共问题跟踪器中有一个功能请求,用于公开并因此控制PostgreSQL中的max_connections。这条评论(我在这里复制它)解释了以现在的方式设置连接数的原因:

Per-tier max_connections is now fully rolled out. As shown on 
https://cloud.google.com/sql/faq#sizeqps, the limits are now:

Memory size, in GiB | Maximum concurrent connections
--------------------+-------------------------------
0.6 (db-f1-micro)   | 25
1.7 (db-g1-small)   | 50
3.75 up to 6        | 100
6 up to 7.5         | 150
7.5 up to 15        | 200
15 up to 30         | 250
30 up to 60         | 300
60 up to 120        | 400
120 and above       | 500

I understand your frustration about the micro/small instances having fewer than 100 
concurrent connections and the lack of control of this flag. We arrived at these values by 
taking the available RAM, reducing it by overhead, shared buffers, autovacuum memory and 
then dividing the remaining ram by typical per-connection memory and rounding off. This 
gives us the number of connections that can be used without risk of hitting out-of-memory 
condition
The basic premise of a fully managed service with an attached SLA is that we provide safe 
hosting. This is what motivates us using a max_connections that is safe against OOM.

您的选择是,当您放弃连接池时,使用具有更高内存的实例。

更新:

正如在上述帖子的评论中提到的,最大连接数设置已经更改,现在是:

此外,现在可以用标志覆盖默认值,最多260K个连接。

王念
2023-03-14

看起来谷歌刚刚将其作为测试版功能发布。创建或编辑数据库实例时,可以添加一个名为 max_connections 的标志,您可以在其中输入 14 到 262143 个连接之间的新限制。

 类似资料:
  • 问题内容: 我在公司中多次设计数据库。为了提高数据库的性能,我只寻找标准化和索引。 如果要求您提高数据库的性能,该数据库包含大约250个表以及一些具有数百万个记录的表,那么您将寻找什么不同的东西? 提前致谢。 问题答案: 优化逻辑设计 逻辑级别是关于查询和表本身的结构。首先尝试最大程度地发挥这一作用。目标是在逻辑级别上访问尽可能少的数据。 拥有最高效的SQL查询 设计支持应用程序需求的逻辑架构(例

  • 我有一个名为ConnectionDerby的类,在该类中,我设置了连接到嵌入式数据库(Derby)的参数,我想减少连接的冗余度,实际的方法和连接可以工作,但我想提高性能,因此该类的代码如下: 我使用另一个类来设置查询的字符串,如下所示: 所以伙计们,我想要一些建议,因为当我在表encabezado中进行更新时,我遇到了以下错误:“Error=Statement.executeUpdate()无法使

  • 我正在尝试使用SpringBoot连接MySQL数据库,但我遇到以下错误: 应用程序无法以类路径启动:[文件:/C:/Dev/Repositorios/jira quality/target/classes/,文件:/C:/Users/jboscod/.m2/repository/mysql/mysql连接器java/8.0.21/mysql-connector-java-8.0.21.jar,文

  • (这适用于AzureSQL数据库) 几乎每篇文章都在开始时说,在创建新数据库之前“连接到主数据库”。 我已使用SSMS 2014连接到我的Azure SQL数据库服务器,没有问题。我在系统数据库下看到了主数据库。我右键单击LHS树中的数据库(位于系统数据库上方),然后单击新建数据库。。。 模板查询注释区域会显示“…连接到主机…”这对我来说意味着我与大师没有联系。 我显然错过了一些关于基础的非常基本

  • 我们正在快速开发一个应用程序,其中我们需要一次获取超过50K行(在应用程序加载时执行),然后数据将用于应用程序的其他部分进行进一步计算。我们正在使用Firebase实时数据库,我们面临一些严重的性能问题。 它目前需要大约40秒才能加载50K行(目前使用的是免费数据库版本,不确定这是否是原因),但我们也观察到,当多个用户使用该应用程序时,加载50K行开始需要大约1分20秒,Peak达到100%。 您

  • 本文向大家介绍JDBC如何获取数据库连接,包括了JDBC如何获取数据库连接的使用技巧和注意事项,需要的朋友参考一下 JDBC(Java Database Connectivity),即Java数据库连接。通过JDBC编程,可以使Java应用程序和数据库进行交互。 JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序。 JDBC编程的第一步,就是要获取数据库连接。所谓的 “