在 Django 中 CONN_MAX_AGE 的好值是什么?

Django 1.6现在支持 用于池数据库连接的 CONN_MAX_AGE

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

34631 次浏览

这个值取决于你网站的流量,流量越多,保持连接的时间就越长,我建议设置一个相对较小的值,比如 60,然后根据使用模式进行相应的调整。



编辑(2018) :

就像@jcyrss 指出的那样,这个方法有它自己的特点,为了以后的参考,我建议把池分发给像 pgbuncher 这样的东西。

不像“流量越大,保持连接的时间就越长”那么简单。

这也取决于您如何运行 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