我的服务器是 Linode 512,上面运行着 Wordpress MU,里面有 3 个网站(访问量不大)和几个 NodeJS 应用程序。
我需要切换到 Lighttpd,因为 Apache 2 使用了大约 59% 的服务器 RAM,而现在 php-cgi 进程占用了大约 43.6% 的服务器 RAM:
- 最常见的情况是 2 个进程各使用 16.5% 的 RAM,
- 4 个进程每个使用 1.8% 的 RAM,并且
- 另外 4 个进程每个使用 0.8% 的 RAM
我怎样才能减少这些进程?我几乎可以肯定,这些进程并不是该服务器所承受的流量所必需的……
我尝试只允许 2 个孩子,但我仍然有那 10 个...这是我的 lighttpd.conf 中的 fastcgi.server 部分。
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/var/run/lighttpd/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "4000"
)
)
)
)
我还可以做些什么来调整 lighttpd 以使用更少的 RAM?
答案1
如果设置了 bin-path,则 lighttpd 将负责生成 fcgi 进程,限制如下:
"max-procs" => <integer>, # optional - when omitted, default is 4
环境变量 PHP_FCGI_CHILDREN 是 php 可执行文件内部生成更多进程的附加提示,您可以将其设置为零。
您没有指定 max-procs,因此 lighty 会生成 4 个 procs,并且每个 procs 都有两个额外的子 procs——4[max-procs] * (1+2[PHP_FCGI_CHILDREN])。
答案2
查看 lighttpd文档关于 php-cgi。看来您可能需要设置指令max-procs
来限制子进程的总数。