Distributor ID: Ubuntu
Description: Ubuntu 12.04.4 LTS
Release: 12.04
Codename: precise
gunicorn (version 19.1.1)
nginx version: nginx/1.1.19
我的gunicorn conf:
bind = ["unix:///tmp/someproj1.sock", "unix:///tmp/someproj2.sock"]
pythonpath = "/home/deploy/someproj/someproj"
workers = 5
worker_class = "eventlet"
worker_connections = 25
timeout = 3600
graceful_timeout = 3600
我们昨天在开发环境中从下午2点左右开始获得502s。这是在Nginx错误日志中:
connect() to unix:///tmp/someproj1.sock failed (2: No such file or directory) while connecting to upstream"
/ tmp中缺少两个gunicorn套接字。
今天凌晨11:55,我跑步ps -eo pid,cmd,etime|grep gunicorn
以获取正常运行时间:
4156 gunicorn: master [myproj. 22:53:54
4161 gunicorn: worker [myproj. 22:53:54
4162 gunicorn: worker [myproj. 22:53:54
4163 gunicorn: worker [myproj. 22:53:54
4164 gunicorn: worker [myproj. 22:53:54
4165 gunicorn: worker [myproj. 22:53:53
5207 grep --color=auto gunicorn 00:00
因此,自昨天〜1:01PM以来,gunicorn及其所有工人一直不间断运行。Nginx访问日志确认在启动gunicorn之后约一个小时,请求已成功得到满足。然后,由于某种原因,似乎两个Gunicorn插槽都消失了,并且Gunicorn继续运行而未写入任何错误日志。
有什么想法可能导致这种情况吗?或如何解决?
事实证明,这确实是一个错误,eventlet
工人在重新启动时会删除套接字。
该修复程序已经合并到master分支中,但是不幸的是尚未发布(版本19.3仍然有问题)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句