Lighttpd:PHP_FCGI_CHILDREN 正确值

Lighttpd:PHP_FCGI_CHILDREN 正确值

我在 256MB RAM VPS 上运行 Lighttpd(估计流量较低)。

为了优化我的服务器性能,我决定更改这些设置:

                    "PHP_FCGI_CHILDREN" => "1",
                    "PHP_FCGI_MAX_REQUESTS" => "20"

我之所以设置1个子进程是因为这样设置的话会有4个php_cgi进程:

2413 11336 /usr/bin/php-cgi 2415 4592 /usr/bin/php-cgi 2417 11336 /usr/bin/php-cgi 2419 27656 /usr/bin/php-cgi

如果我设置 4,我会得到 >8 个子节点。我想知道为什么,以及这是否正常。现在我的网络服务器非常快,因为我终于不再像以前那样大量依赖交换了。

谢谢

答案1

正如你所看到的常问问题有三个配置选项可以控制 mod_php 进程的数量。

  • PHP_FCGI_CHILDREN(默认为 1)
  • max-procs(默认为 4)
  • min-procs(当前版本中被忽略)

计算最初产生的进程的公式如下:

no_of_procs = max-procs * ( PHP_FCGI_CHILDREN + 1) 

max-procs这意味着,对于启动工作者中的每个进程,PHP_FCGI_CHILDREN为每个父进程 +1 个守护进程max-procs

答案2

对于较新的 lighttpd 实例,你应该设置PHP_FCGI_CHILDREN为 0 并控制生成的实例数量。

这有助于减少运行的总进程数,因为不需要额外的掌握进程。但是,如果您使用字节码缓存,请仅设置 1 个生成的主进程并控制其下方的子进程。

PHP_MAX_REQUESTS至 500 以避免再次潜在的问题。

相关内容