我正在使用 FastCGI 和 lighttpd 运行 Django 应用程序。
有人可以解释我在决定 maxrequests、maxspare、minspare、maxchildren 使用什么值时应该考虑什么吗?
这些选项没有很好的文档记录,但似乎非常重要。
不要只告诉我他们做了什么;我想了解它们的含义以及我应该如何决定使用哪些值。
谢谢。
让我们从定义开始
maxrequests:子服务器在被杀死之前有多少请求 和一个新的分叉 maxspare :保持运行的最大备用进程数 minspare :要预分叉的最小备用进程数 maxchildren:prefork 模式下的硬限制进程数
这意味着您的网络服务器中的任何给定时间最多有maxchildren进程运行,每个进程都针对maxrequests请求运行。在服务器启动时,您将获得minspare进程,如果有更多请求到来,它将继续增长直到maxspare(或maxchildren )。
因此,minspare可以让您说出您期望最少有多少并发请求(如果您从一个开始,避免创建进程很重要,最好从 10 开始),而maxspare可以让您说出您的并发请求数量服务器最多参加(不影响它的预期响应时间等。需要压力测试来验证)。maxrequests是在谈论每个孩子的生命周期,以防它们由于任何类型的限制而无法永远运行。
不要忘记将您的 fcgi 设置与您的 apache worker 设置相协调。我通常比 fcgi 工作人员保留更多的 apache 工作人员......它们的重量较轻,并且如果并发量达到高于我的 maxspare 时,它们将等待可用的 fcgi 工作人员释放以处理请求。