Django中CONN_MAX_AGE有什么好处?

时间:2013-11-12 18:37:46

标签: django database-connection django-1.6

Django 1.6现在支持CONN_MAX_AGE to pool database connections

默认情况下,该值为0(无池)。这个选项的合理价值是什么?

2 个答案:

答案 0 :(得分:19)

此值取决于您网站的流量,流量越多,保留连接的秒数越多,我建议设置一个相对较小的值,如60,并根据使用模式进行相应调整。



编辑(2018):

就像@jcyrss指出的那样,这种方法有它的怪癖,为了将来的参考,我建议将池化为pgbouncer而不是。

答案 1 :(得分:13)

不像“流量越多,保留连接的秒数越多”这么简单。

这也取决于你如何运行Django。

现在,一种在gunicorn + greenlet(evenlet或gevent)中推出Django的流行方式。如果你将CONN_MAX_AGE设置为60(在我的情况下甚至是5),你可能会抱怨来自DB服务器的“连接太多”。

有关详细信息,请参阅此处。

https://github.com/benoitc/gunicorn/issues/996

https://serverfault.com/questions/635100/django-conn-max-age-persists-connections-but-doesnt-reuse-them-with-postgresq