Was ist ein guter Wert für CONN_MAX_AGE in Django?



database-connection django-1.6 (2)

Nicht so einfach wie "Je mehr Verkehr, desto mehr Sekunden, um die Verbindung aufrechtzuerhalten".

Es hängt auch davon ab, wie Sie Django betreiben.

Nun, eine beliebte Art, Django in Gunicorn + Greenlet (Evenlet oder Gevent) zu starten. Wenn Sie CONN_MAX_AGE auf 60 setzen (in meinem Fall sogar 5), erhalten Sie möglicherweise zu viele Verbindungen vom DB-Server.

Details finden Sie hier.

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

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

Django 1.6 unterstützt jetzt CONN_MAX_AGE zum Pool von Datenbankverbindungen .

Standardmäßig ist der Wert 0 (kein Pooling). Was ist ein sinnvoller Wert für diese Option?


Answer #1

Dieser Wert hängt vom Datenverkehr Ihrer Site ab. Je mehr Datenverkehr mehr Sekunden dauert, um die Verbindung beizubehalten, würde ich empfehlen, einen relativ kleinen Wert wie 60 einzustellen und ihn entsprechend dem Verwendungsmuster anzupassen.



Bearbeiten (2018):

Wie @jcyrss hervorgehoben hat, hat diese Methode ihre Macken. Als Referenz empfehle ich, das Pooling an etwas wie pgbouncer zu übergeben.





django-1.6