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_PASSWORD=$DATABASE_PASSWORD \
|
||||||
-e MAYAN_DATABASE_USER=$DATABASE_USER \
|
-e MAYAN_DATABASE_USER=$DATABASE_USER \
|
||||||
-e MAYAN_DATABASE_PORT=$DOCKER_POSTGRES_PORT \
|
-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 \
|
-v $DOCKER_MAYAN_VOLUME:/var/lib/mayan \
|
||||||
$DOCKER_MAYAN_IMAGE >/dev/null
|
$DOCKER_MAYAN_IMAGE >/dev/null
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|||||||
@@ -27,6 +27,6 @@ services:
|
|||||||
MAYAN_DATABASE_NAME: mayan
|
MAYAN_DATABASE_NAME: mayan
|
||||||
MAYAN_DATABASE_PASSWORD: mayan-password
|
MAYAN_DATABASE_PASSWORD: mayan-password
|
||||||
MAYAN_DATABASE_USER: mayan
|
MAYAN_DATABASE_USER: mayan
|
||||||
MAYAN_DATABASE_CONN_MAX_AGE: 60
|
MAYAN_DATABASE_CONN_MAX_AGE: 0
|
||||||
volumes:
|
volumes:
|
||||||
- app:/var/lib/mayan
|
- app:/var/lib/mayan
|
||||||
|
|||||||
@@ -99,5 +99,5 @@ Direct install
|
|||||||
MAYAN_DATABASE_NAME=mayan,
|
MAYAN_DATABASE_NAME=mayan,
|
||||||
MAYAN_DATABASE_PASSWORD=mayanuserpass,
|
MAYAN_DATABASE_PASSWORD=mayanuserpass,
|
||||||
MAYAN_DATABASE_USER=mayan,
|
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_NAME=mayan \
|
||||||
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
|
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
|
||||||
-e MAYAN_DATABASE_USER=mayan \
|
-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 \
|
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
|
||||||
mayanedms/mayanedms:<version>
|
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_NAME=mayan \
|
||||||
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
|
-e MAYAN_DATABASE_PASSWORD=mayanuserpass \
|
||||||
-e MAYAN_DATABASE_USER=mayan \
|
-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 \
|
-v /docker-volumes/mayan-edms/media:/var/lib/mayan \
|
||||||
mayanedms/mayanedms:<version>
|
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
|
Amount in seconds to keep a database connection alive. Allow reuse of database
|
||||||
connections. For more information read the pertinent Django documentation
|
connections. For more information read the pertinent Django documentation
|
||||||
page: :django-docs:`Settings, CONN_MAX_AGE <ref/settings/#conn-max-age>`
|
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``
|
``MAYAN_GUNICORN_WORKERS``
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ class PlatformTemplateSupervisord(PlatformTemplate):
|
|||||||
environment_name='MAYAN_GUNICORN_WORKERS'
|
environment_name='MAYAN_GUNICORN_WORKERS'
|
||||||
),
|
),
|
||||||
Variable(
|
Variable(
|
||||||
name='DATABASE_CONN_MAX_AGE', default=60,
|
name='DATABASE_CONN_MAX_AGE', default=0,
|
||||||
environment_name='MAYAN_DATABASE_CONN_MAX_AGE'
|
environment_name='MAYAN_DATABASE_CONN_MAX_AGE'
|
||||||
),
|
),
|
||||||
Variable(
|
Variable(
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ CELERY_RESULT_BACKEND = os.environ.get('MAYAN_CELERY_RESULT_BACKEND')
|
|||||||
environment_database_engine = os.environ.get('MAYAN_DATABASE_ENGINE')
|
environment_database_engine = os.environ.get('MAYAN_DATABASE_ENGINE')
|
||||||
|
|
||||||
if environment_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:
|
if environment_database_conn_max_age:
|
||||||
environment_database_conn_max_age = int(environment_database_conn_max_age)
|
environment_database_conn_max_age = int(environment_database_conn_max_age)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user