Lighttpd:PHP_FCGI_CHILDREN正确的值

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

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

"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个以上的孩子。 我想知道为什么,如果这是确定的。 现在我的networking服务器非常快,因为我终于不像以前那样依靠大规模的交换了。

谢谢

正如你在这个FAQ中看到的,有三个configuration选项可以控制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中的每个PHP_FCGI_CHILDREN启动PHP_FCGI_CHILDREN workers +1监护进程。

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

这可以帮助减less运行总进程的数量,因为不需要额外的进程。 但是,如果您正在使用字节码caching,则只需设置1个衍生的主进程并控制其下的subprocess。

PHP_MAX_REQUESTS设置为500,以避免另一个潜在的问题。