我在单个 Xeon 核心上运行 gunicorn 19.5.0,有 3 个工作线程和 30 秒超时。Gunicorn 位于 nginx 和 postgres 之间。Ngix 与 gunicorn(Web 服务器)位于同一台服务器上,postgres 位于单独的数据库服务器上,只能在 10.xxx 上访问
我间歇性收到 HTTP502(网关错误)。网站会停机几分钟,然后才能再次启动。
我查看了我的 gunicorn 日志,每 5 分钟就会出现这样的一行:
[2016-07-04 11:49:24 +0200] [1502] [CRITICAL] WORKER TIMEOUT (pid:2599)
[2016-07-04 11:49:25 +0200] [2613] [INFO] Booting worker with pid: 2613
搜索这个错误让我相信这是由于应用服务器超时引起的。但我的超时设置是 30 秒,哇喔比我希望页面加载的时间更长!
不过,目前只有我一个人在使用这台服务器 - 它并没有被大量的 http 请求所困扰。因此,我想不出它为什么会超时 - 硬件似乎足以满足要求(而且我检查过,我有空闲的 RAM)。服务器在虚拟机上 - 我是否应该联系 VPS 提供商寻求解释?
答案1
查看了我的正常运行时间监控服务,整个上午响应时间都在稳步增加。发布问题后大约 5 分钟,我的数据库服务器就坏了,VPS 提供商也无法恢复。所以我猜这些问题都是他们的错,我正在等待他们的解决方案(和解释)。