由于我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 内存。