From a9b1a260890341916be4daa95f019c2d416d8a21 Mon Sep 17 00:00:00 2001 From: Debanjum Date: Thu, 5 Jun 2025 15:17:18 -0700 Subject: [PATCH] Update gunicorn default timeouts, workers. Configure via env vars Increase timeout to 180 (from 120s previous) and graceful timeout to 90 (from 30s default) to reduce Increase default gunicorn workers and make it configurable to better utilize (v)CPUs. This is manually configured (instead of using multiprocessing.cpu_count()) as VMs/containers may read cpu count of host machine instead of their VMs/containers. --- gunicorn-config.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gunicorn-config.py b/gunicorn-config.py index 7d98dc7c..220e626a 100644 --- a/gunicorn-config.py +++ b/gunicorn-config.py @@ -1,10 +1,17 @@ -import multiprocessing +import os bind = "0.0.0.0:42110" -workers = 2 + +# Worker Configuration +workers = int(os.environ.get("GUNICORN_WORKERS", 6)) worker_class = "uvicorn.workers.UvicornWorker" -timeout = 120 -keep_alive = 60 + +# Worker Timeout Configuration +timeout = int(os.environ.get("GUNICORN_TIMEOUT", 180)) +graceful_timeout = int(os.environ.get("GUNICORN_GRACEFUL_TIMEOUT", 90)) +keep_alive = int(os.environ.get("GUNICORN_KEEP_ALIVE", 60)) + +# Logging Configuration accesslog = "-" errorlog = "-" loglevel = "debug"