Gunicorn worker timeout error

后端 未结 15 1924
梦谈多话
梦谈多话 2020-11-29 16:07

I have setup gunicorn with 3 workers 30 worker connections and using eventlet worker class. It is setup behind Nginx. After every few requests, I see this in the logs.

15条回答
  •  有刺的猬
    2020-11-29 16:35

    I've got the same problem in Docker.

    In Docker I keep trained LightGBM model + Flask serving requests. As HTTP server I used gunicorn 19.9.0. When I run my code locally on my Mac laptop everything worked just perfect, but when I ran the app in Docker my POST JSON requests were freezing for some time, then gunicorn worker had been failing with [CRITICAL] WORKER TIMEOUT exception.

    I tried tons of different approaches, but the only one solved my issue was adding worker_class=gthread.

    Here is my complete config:

    import multiprocessing
    
    workers = multiprocessing.cpu_count() * 2 + 1
    accesslog = "-" # STDOUT
    access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(q)s" "%(D)s"'
    bind = "0.0.0.0:5000"
    keepalive = 120
    timeout = 120
    worker_class = "gthread"
    threads = 3
    

提交回复
热议问题