(performance l dynos,web_concurrency = 17)。我的数据库连接在Dyno Startup上大大峰值,超过了预期的连接数。
预期的行为
我的设置:
MAX_CONNS=4
(每个工人)
REUSE_CONNS=2
-
WEB_CONCURRENCY=17
(每点工人)-
产量6 dynos
- 我希望每个Dyno最多保持68个连接(17个工人 * 4 max_conns)。但是,在启动时,我看到单个Dynos暂时持有150多个空闲连接,这有助于达到Heroku的500连接限制。
关键问题
-
如果请求超过
MAX_CONNS
连接,django-db-dementpool会做什么?
请求排队并被迫等待连接释放?
或django-db-gerventpool忽略了
MAX_CONNS
- ,允许连接超过限制?
为什么我在Dyno启动期间看到连接尖峰?
-
the the the the the to
ver ver ver ver申请峰值仅在启动期间发生,而不在正常流量下发生。
- 检查了
pg_stat_activity
,看到了同一dyno的许多空闲连接。
确保我没有泄漏芹菜,Cron Jobs或背景任务的连接。
是否有人在Heroku上遇到了Django-DB-Enventpool遇到这个问题?关于它是否尊重 MAX_CONNS
- 或连接是否可以超过高并发的限制的任何见解?
是的,它应该绝对尊重MAX_CONNS