67

Django 1.6 现在支持CONN_MAX_AGE池化数据库连接

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

4

2 回答 2

30

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



编辑(2018 年):

就像@jcyrss 指出的那样,这种方法有其怪癖,为了将来参考,我建议将池分发给 pgbouncer 之类的东西。

于 2014-02-12T14:39:19.600 回答
28

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

它还取决于您如何运行 Django。

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

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

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

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

于 2016-06-04T02:27:16.377 回答