Uvicorn 积压与限制并发

Cru*_*her 8 asgi uvicorn

我试图理解 uvicorn 的“backlog”标志和“limit-concurrency”标志之间的相互作用。来自文档(https://www.uvicorn.org/settings/

积压:积压中保留的最大连接数。与大量传入流量相关。默认值:2048

limit-concurrency:在发出 HTTP 503 响应之前允许的最大并发连接或任务数。即使在资源过剩的负载下,也有助于确保已知的内存使用模式。

这两种描述似乎都独立有意义,具体取决于您如何解释“积压”一词。但我对他们如何相互作用感到困惑。

限制并发明确表示,如果超过打开连接的数量,那么它将抛出 503 错误,但默认为 2048 的积压似乎意味着 uvicorn 将保留 2048 个请求等待其他请求完成,这意味着它不会是503ing。

任何人都可以阐明这些设置吗?

eur*_*i10 1

两个标志之间没有交互。

backlog向下传递loop.create_server,最终将确定侦听的套接字数量。

limit-concurrency只是在这里告诉大家,在 x 回复发出 503 之后

  • 例如,如果限制并发数为 5,如何才能达到 1000 个积压连接? (3认同)