Django nginx/gunicorn在一段时间后抛出504s(超时)-如何调试?

Django nginx/gunicorn在一段时间后抛出504s(超时)-如何调试?,django,nginx,gunicorn,supervisord,Django,Nginx,Gunicorn,Supervisord,我们有一个nginx-gunicorn-django设置 服务器正常运行了一段时间,然后nginx开始抛出 504网关超时。 尝试使用lynx本地访问gunicorn(127.0.0.1:8000)也不起作用 登录到机器会显示足够的cpu、内存和磁盘空间: CPU[|||| 3.3%] Mem[||||||||||||||||||

我们有一个nginx-gunicorn-django设置

服务器正常运行了一段时间,然后nginx开始抛出 504网关超时。 尝试使用lynx本地访问gunicorn(127.0.0.1:8000)也不起作用

登录到机器会显示足够的cpu、内存和磁盘空间:

CPU[||||                                                             3.3%]
Mem[||||||||||||||||||                                         362/3750MB]

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  5.5G  2.1G  73% /
主管显示gunicorn正在运行:

gunicorn                         RUNNING    pid 25264, uptime 2 days, 8:55:22
django下面的数据库是活动的。 我查看了django、supervisor、nginx和数据库日志,没有发现任何可疑之处

[更新:日志]

在nginx.error.log中有几个

client intended to send too large body
SSL_do_handshake() failed
时不时地犯错误,这是肯定的

upstream timed out
recv() failed (104: Connection reset by peer) while reading response header from upstream
gunicorn卡住后出现错误

版本

nginx/1.6.2
gunicorn==18.0
Django==1.6.2
supervisor==3.0
有没有关于如何找出发生的情况/原因的建议


(通过supervisor重新启动gunicorn解决了该问题)

您是否正在使用
DEBUG=True
运行?如果是这样,Django将在内存中存储它运行的每个SQL查询。看起来您还有足够的内存,但可能在某个地方遇到了限制?DEBUG设置为False。是否查看了/var/log/gunicorn日志文件?有什么相关的吗?我看不出来。我在数据库上有一些错误,但是当系统运行正常时也会发生。db肯定还活着,还在工作。大约一个月前,我升级到了gunicorn==19.3.0,现在再也没有了。