gunicorn timeout

问题描述:

[2017-04-05 10:54:41 +0000] [3384] [CRITICAL] WORKER TIMEOUT (pid:3625)
[2017-04-05 10:54:41 +0000] [3625] [INFO] Worker exiting (pid: 3625)
[2017-04-05 10:54:41 +0000] [3630] [INFO] Booting worker with pid: 3630


分析:

看日志的意思是request超时了。gunicorn有一个参数timeout用于设定request超时的限制。默认是30秒。即30秒内worker不能进行返回结果,gunicorn就认定这个request超时,终止worker继续执行,向客户端返回出错的信息,用于避免系统出现异常时,所有worker都被占住,无法处理更多的正常request,导致整个系统无法访问。所以可以检查一下为什么这个request会耗那么久的时间(超过30秒),如果是正常的话,可以适当调高gunicorn的超时限制或者使用异步的worker,如果是系统处理速度遇到瓶颈,那可能要从数据库,缓存,算法等各个方面来提升速度。话说如果一个request要很久才能返回,用户体验可能也是一个问题。所以尽量优化速度还是很重要的。PS:gunicorn前面很有可能还有一层nginx,如果要调高超时限制,可能需要修改nginx的配置同时调高nginx的超时限制

链接:
https://www.zhihu.com/question/20770719/answer/16122955


gunicorn 工作原理:

【1】详细讲解:
https://my.oschina.net/u/90679/blog/106725
【2】
http://www.tuicool.com/articles/aiami2

你可能感兴趣的:(BlockChain)