소스 검색

Configure gunicorn server for ML use case

Olly Welch 2 년 전
부모
커밋
cbe9289826
1개의 변경된 파일18개의 추가작업 그리고 3개의 파일을 삭제
  1. 18 3
      machine-learning/gunicorn.conf.py

+ 18 - 3
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