关于gunicorn
:我期望最佳工人数为$num_cores
或$num_cores-1
,即每个工人都有自己的核心。但是枪炮documentation给出了以下指导原则:
Gunicorn依靠操作系统来提供所有负载 处理请求时保持平衡。一般我们建议(2 x $ num_cores)+ 1作为开始的工人数量。虽然没有 过于科学,公式是基于a的假设 给定核心,一个工作人员将从套接字读取或写入 而另一名工人正在处理请求。
我不明白这个解释。这是否表明同一个核心可以同时用于1)从套接字读取或写入AND 2)处理请求? (单个核心可以做这样的事情吗?)
答案 0 :(得分:4)
答案是基于等待事物的过程。
例如,当您调用SQL服务器时,核心无效。每个核心有一个额外的工作者意味着内核调度程序可以将时间用于其他进程。
你会以这种方式获得更多的RPS。
如果您知道每个请求的时间在详细信息和负载模式中,您将能够进一步更改以满足您的需求。