当我阅读this thread时,我对Vinko Vrsalovic的回复感到困惑
在服务器启动时,你会得到minspare 流程将继续增长 直到maxspare(或maxchildren)if 更多的请求即将到来。
然后,如果maxspare和maxchildren的值不同,会发生什么?服务器的进程会持续增长,直到maxspare或maxchildren或其他任何东西?
以下是同一答复中两个术语的定义:
maxspare:最大备用数量 流程继续运行 maxchildren: 硬限制进程数 prefork模式
答案 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,如果为真,孩子将会终止。