maxchildren,maxspare及其在fastcgi和django中的关系是什么意思?

时间:2010-03-06 14:36:25

标签: django fastcgi

当我阅读this thread时,我对Vinko Vrsalovic的回复感到困惑

  

在服务器启动时,你会得到minspare   流程将继续增长   直到maxspare(或maxchildren)if   更多的请求即将到来。

然后,如果maxspare和maxchildren的值不同,会发生什么?服务器的进程会持续增长,直到maxspare或maxchildren或其他任何东西?

以下是同一答复中两个术语的定义:

  

maxspare:最大备用数量   流程继续运行   maxchildren:   硬限制进程数   prefork模式

2 个答案:

答案 0 :(得分:1)

如果你的maxspare为3且maxchildren为10:

当您启动服务器并且没有请求时,您应该运行3个进程。

如果您对3个单独的进程有3个请求,则现在应该有3到6个进程在运行。我相信启动新分支有一定程度的启发式,因为FastCGI重用已经存在的进程(与CGI不同,CGI只会在每个请求启动一个进程并在回复请求后终止它)。

另一方面,如果同时获得1000个请求,则只能同时运行10个分支。换句话说,您可能正在删除某些请求,但是您的服务器不会被禁用。

答案 1 :(得分:1)

minspare,maxspare限制空闲儿童数。

maxchildren limimt total children。

当服务器启动时,它会创建minspare子进程来处理请求。

当没有空闲的孩子并且有新的请求到来时,当前的孩子计数< maxchildren,服务器创建新子进程来处理此请求,否则,请求将被阻止。

当孩子完成请求时,它将检查当前空闲孩子是否计数> maxspare,如果为真,孩子将会终止。