Gunicorn工作者超时错误

我已经设置了3名工人30名工人连接的gunicorn,并使用了eventlet工人class。 它被设置在Nginx之后。 每隔几个请求之后,我在日志中看到这个。

[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475) None [INFO] gunicorn.error: Booting worker with pid: 23514 

为什么发生这种情况? 我怎样才能找出什么是错的?

谢谢

我们使用Django + nginx + gunicorn也遇到同样的问题。 从Gunicorn文档中我们已经configuration了几乎没有区别的优雅超时。

经过一番testing,我们发现解决scheme,要configuration的参数是:timeout(而不是正常超时)。 它像一个时钟一样工作

那么,做:

1)打开gunicornconfiguration文件

2)将TIMEOUT设置为您所需要的值 – 以秒为单位

 NUM_WORKERS=3 TIMEOUT=120 exec gunicorn ${DJANGO_WSGI_MODULE}:application \ --name $NAME \ --workers $NUM_WORKERS \ --timeout $TIMEOUT \ --log-level=debug \ --bind=127.0.0.1:9000 \ --pid=$PIDFILE 

--log-level=DEBUG运行Gunicorn。

它应该给你一个应用程序堆栈跟踪。

会不会是这个? http://docs.gunicorn.org/en/latest/settings.html#timeout

其他的可能性可能是你的反应时间太长或停滞不前。

你需要使用其他工人types的类似gevent龙卷风的asynchronous一个更多的解释看这个:第一个解释:

如果您希望在请求处理期间您的应用程序代码可能需要长时间暂停,您可能还需要安装Eventlet或Gevent

第二个 :

默认的同步工作人员假设您的应用程序在CPU和networking带宽方面是资源绑定的。 通常这意味着你的应用程序不应该做任何需要不确定的时间。 例如,对互联网的请求符合这个标准。 在某些时候,外部networking将以这样一种方式失败,即客户端将堆积在您的服务器上。

我有非常类似的问题,我也尝试使用“runserver”,看看我能find什么,但我只是一个消息Killed

所以我认为这可能是资源问题,我继续给更多的RAM的实例,它的工作。