Change all uses of CONN_MAX_AGE to 0
Database connection when using gunicorn microthreads are not shared by the microthreads and can exhaust the number of open connections available. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -121,7 +121,7 @@ docker run -d \
|
||||
-e MAYAN_DATABASE_PASSWORD=$DATABASE_PASSWORD \
|
||||
-e MAYAN_DATABASE_USER=$DATABASE_USER \
|
||||
-e MAYAN_DATABASE_PORT=$DOCKER_POSTGRES_PORT \
|
||||
-e MAYAN_DATABASE_CONN_MAX_AGE=60 \
|
||||
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
|
||||
-v $DOCKER_MAYAN_VOLUME:/var/lib/mayan \
|
||||
$DOCKER_MAYAN_IMAGE >/dev/null
|
||||
echo "Done"
|
||||
|
||||
@@ -27,6 +27,6 @@ services:
|
||||
MAYAN_DATABASE_NAME: mayan
|
||||
MAYAN_DATABASE_PASSWORD: mayan-password
|
||||
MAYAN_DATABASE_USER: mayan
|
||||
MAYAN_DATABASE_CONN_MAX_AGE: 60
|
||||
MAYAN_DATABASE_CONN_MAX_AGE: 0
|
||||
volumes:
|
||||
- app:/var/lib/mayan
|
||||
|
||||
@@ -99,5 +99,5 @@ Direct install
|
||||
MAYAN_DATABASE_NAME=mayan,
|
||||
MAYAN_DATABASE_PASSWORD=mayanuserpass,
|
||||
MAYAN_DATABASE_USER=mayan,
|
||||
MAYAN_DATABASE_CONN_MAX_AGE=360,
|
||||
MAYAN_DATABASE_CONN_MAX_AGE=0,
|
||||
<...>
|
||||
|
||||
@@ -50,7 +50,7 @@ identifier::
|
||||
-e MAYAN_DATABASE_NAME=mayan \
|
||||
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
|
||||
-e MAYAN_DATABASE_USER=mayan \
|
||||
-e MAYAN_DATABASE_CONN_MAX_AGE=60 \
|
||||
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
|
||||
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
|
||||
mayanedms/mayanedms:<version>
|
||||
|
||||
@@ -108,7 +108,7 @@ instead of the IP address of the Docker host (``172.17.0.1``)::
|
||||
-e MAYAN_DATABASE_NAME=mayan \
|
||||
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
|
||||
-e MAYAN_DATABASE_USER=mayan \
|
||||
-e MAYAN_DATABASE_CONN_MAX_AGE=60 \
|
||||
-e MAYAN_DATABASE_CONN_MAX_AGE=0 \
|
||||
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
|
||||
mayanedms/mayanedms:<version>
|
||||
|
||||
@@ -221,6 +221,10 @@ Optional. Allows loading an alternate settings file.
|
||||
Amount in seconds to keep a database connection alive. Allow reuse of database
|
||||
connections. For more information read the pertinent Django documentation
|
||||
page: :django-docs:`Settings, CONN_MAX_AGE <ref/settings/#conn-max-age>`
|
||||
According to new information Gunicorn's microthreads don't share connections
|
||||
and will exhaust the available Postgres connections available if a number
|
||||
other than 0 is used. Reference: https://serverfault.com/questions/635100/django-conn-max-age-persists-connections-but-doesnt-reuse-them-with-postgresq
|
||||
and https://github.com/benoitc/gunicorn/issues/996
|
||||
|
||||
``MAYAN_GUNICORN_WORKERS``
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ class PlatformTemplateSupervisord(PlatformTemplate):
|
||||
environment_name='MAYAN_GUNICORN_WORKERS'
|
||||
),
|
||||
Variable(
|
||||
name='DATABASE_CONN_MAX_AGE', default=60,
|
||||
name='DATABASE_CONN_MAX_AGE', default=0,
|
||||
environment_name='MAYAN_DATABASE_CONN_MAX_AGE'
|
||||
),
|
||||
Variable(
|
||||
|
||||
@@ -330,7 +330,7 @@ CELERY_RESULT_BACKEND = os.environ.get('MAYAN_CELERY_RESULT_BACKEND')
|
||||
environment_database_engine = os.environ.get('MAYAN_DATABASE_ENGINE')
|
||||
|
||||
if environment_database_engine:
|
||||
environment_database_conn_max_age = os.environ.get('MAYAN_DATABASE_CONN_MAX_AGE', None)
|
||||
environment_database_conn_max_age = os.environ.get('MAYAN_DATABASE_CONN_MAX_AGE', 0)
|
||||
if environment_database_conn_max_age:
|
||||
environment_database_conn_max_age = int(environment_database_conn_max_age)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user