Что является хорошим значением для CONN_MAX_AGE в Django?
Django 1.6 теперь поддерживает CONN_MAX_AGE
для объединения соединений с базой данных.
По умолчанию значение равно 0 (без объединения). Что такое разумное значение для этой опции?
Ответы
Ответ 1
Это значение зависит от трафика вашего сайта, тем больше трафика занимает больше секунд, чтобы сохранить соединение, я бы рекомендовал установить относительно небольшое значение, например 60
, и настроить его соответственно шаблону использования.
Ответ 2
Не так просто, как "больше трафика больше секунд, чтобы сохранить соединение".
Это также зависит от того, как вы запускаете Django.
Теперь, один популярный способ запустить Django в gunicorn + greenlet (Evenlet or gevent). И если вы установите CONN_MAX_AGE на 60 (даже 5 в моем случае), вы можете получить жалобу "слишком много соединений" с сервера БД.
Подробнее см. здесь.
https://github.com/benoitc/gunicorn/issues/996
https://serverfault.com/info/635100/django-conn-max-age-persists-connections-but-doesnt-reuse-them-with-postgresq