3

由于我CONN_MAX_AGE: 300在我的 Django 服务器上使用,请求失败并出现错误,因为 PostgreSQL 超出了max_connections限制(默认为 100)。

解决这个问题的最佳策略是什么?我试过使用 pgpool2,但这根本没有解决问题。现在连接由 pgpool 2 排队(让站点永远等待,并最终导致网关超时)。

我预计使用 pgpool 会减少进入 PostgreSQL 的空闲连接数,不会再次导致同样的问题。

这些是我使用的设置:

pgpool2:

num_init_children = 32 # are so many workers needed? max_pool = 10 # default is 4

postgres:

max_connections = 400 # upgraded from default 100

uWSGI/Django:

  • 所有工人都有20个线程。
  • 所有站点加起来总共有 10 名工人。

VPS 是一个 2.27GHz 的 8 核 Linode,具有 2GB 内存。

4

1 回答 1

0

我知道这是一年前的事,但你用的是 Gunicorn 吗?这个拉取请求解释了异步工作人员不会重用连接,并且您曾经/正在遇到的问题似乎可以通过切换到同步工作人员来解决。

于 2015-09-10T19:09:55.013 回答