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 解决了我的问题(目前)。
我为数据库设置了更多内存
我在云中看到这些错误 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 解决了我的问题(目前)。
我为数据库设置了更多内存