关于最佳枪械工人数量

usu*_* me 3 python gunicorn

关于gunicorn:我期望最佳工人数量为$num_cores$num_cores-1,即每个工人都有自己的核心。但是 gunicorn文档给出了以下指南:

Gunicorn 依靠操作系统在处理请求时提供所有负载平衡。通常我们建议 (2 x $num_cores) + 1 作为开始的工作人员数量。虽然不太科学,但该公式基于这样一个假设,即对于给定的内核,一个 worker 将从套接字读取或写入,而另一个 worker 正在处理请求。

我不明白解释。这是否表明同一个内核可以同时用于 1)从套接字读取或写入以及 2)处理请求?(单核可以做这样的事情吗?)

Joe*_*rty 5

答案是基于等待事物的进程。

例如,当您调用 SQL 服务器时,核心什么也不做。每个内核有一个额外的工作人员意味着内核调度程序可以将时间用于其他进程。

通过这种方式,您将获得更多 RPS。

如果您清楚地了解每个请求的时间流向以及您的负载模式,您将能够进一步更改它以满足您的需要。