Gunicorn: 问题:如果所有工作人员都很忙并且有请求进来会发生什么?

创建于 2019-01-28  ·  3评论  ·  资料来源: benoitc/gunicorn

我怀疑:

  • 请求阻塞,直到工人空闲,或
  • 请求失败(例如:直接响应 HTTP 504 网关超时,或连接关闭被上游代理(例如 Nginx)报告为 HTTP 504 网关超时)

(我正在尝试将此问题发布到 Gunicorn 邮件列表,但我找不到有关如何直接执行此操作的明确说明。因此希望创建 Github 问题是正确的途径。)

Question Discussion

所有3条评论

这是一个很好的地方:) 你可以在那里找到一些信息: http :

无论如何这将取决于。 有了 NGINX 背后的 Gunicorn,即使是同步工作者也能够接受多个连接。 它将同时处理 N 个请求(其中 N 是工作人员的数量),而您可以在 nginx 缓冲区中等待多个请求。 在大多数情况下,这足以运行一个具有超过 10K 同时连接的非常大的网站。

对于其他用途,您有异步工作人员。 虽然 NGINX 或任何能够缓冲连接的代理将继续帮助这些工作人员,但将允许 Gunicorn 处理更多并发连接或长时间保持某些连接打开。

希望我回答了你的问题。

仅回答有关 Gunicorn 的问题:

积压设置指定操作系统侦听积压的深度。 如果积压已满,请求将被操作系统拒绝,网关将出现上游连接失败。 如果积压未满,操作系统将打开连接,但在 Gunicorn 工作人员准备好接受请求之前不会由 Gunicorn 处理。 如果 Gunicorn 没有快速处理请求,网关可能会返回上游超时。

如果您发现有很多上游超时,并且您在 Gunicorn 前面使用反向代理运行,您可能希望减少积压,以便您的代理可以更有效地进行故障转移。

谢谢各位。 这些答案有帮助。

此页面是否有帮助?
0 / 5 - 0 等级