diff --git a/machine-learning/gunicorn.conf.py b/machine-learning/gunicorn.conf.py index 51704b6155..791cb7d243 100644 --- a/machine-learning/gunicorn.conf.py +++ b/machine-learning/gunicorn.conf.py @@ -1,13 +1,28 @@ """ Gunicorn configuration options. -https://docs.gunicorn.org/en/stable/settings.html#config-file +https://docs.gunicorn.org/en/stable/settings.html """ import os # Set the bind address based on the env -server_port = os.getenv('MACHINE_LEARNING_PORT') or "3003" -bind = f"127.0.0.1:{server_port}" +port = os.getenv('MACHINE_LEARNING_PORT') or "3003" +bind = f"0.0.0.0:{port}" # Preload the Flask app / models etc. before starting the server preload_app = True + +# Logging settings - log to stdout and set log level +accesslog = "-" +loglevel = os.getenv("MACHINE_LEARNING_LOG_LEVEL") or "info" + +# Worker settings +# ---------------------- +# It is important these are chosen carefully as per +# https://pythonspeed.com/articles/gunicorn-in-docker/ +# Otherwise we get workers failing to respond to heartbeat checks, +# especially as requests take a long time to complete. +workers = 2 +threads = 4 +worker_tmp_dir = "/dev/shm" +timeout = 60