gcloud SQL postgres - 致命:剩余的连接槽保留给非复制超级用户连接

gcloud SQL postgres - FATAL: remaining connection slots are reserved for non-replication superuser connections

我在云中看到这些错误 sql Postgres 日志。

小1cpu,4Gb的ram实例,不过还是有点麻烦。 我在可自定义的标志中没有看到任何可以让我绕过此错误的 max_connections

该应用程序是一个简单的 Django 服务,查询和负载很少,甚至没有暴露给 public。

我的直接解决方案是开始使用带有 pgbouncer 或 Django 应用程序的数据库连接池,但这会增加一些复杂性。

 max_connections 
-----------------
 100

我们有办法增加这个数字吗?

PS:经过深入挖掘,似乎是由于使用了 gevent worker 和 gunicorn。在此之前它是稳定的 < 20 个连接。

不过,在流量激增的情况下,最好知道是否可以控制 max_connections

使用gevent时使用CONN_MAX_AGE: 0

更新:现在您可以通过 Cloud SQL Flags 设置 max_connections 设置。参见 https://cloud.google.com/sql/docs/postgres/flags#postgres-m


这是我在写问题时的回答:

目前无法提高限制,但我们知道这个问题。请在我们的问题跟踪器上关注 Issue 37271935

在这里查看内存和最大并发连接之间的关系: https://cloud.google.com/appengine/docs/standard/java/cloud-sql/pricing-access-limits

我使用 Postgresql 解决了我的问题(目前)。

我为数据库设置了更多内存