Php

如何有效地減少執行的 php-cgi 程序?

  • December 12, 2012

我的伺服器是 Linode 512,在它上面我執行一個 Wordpress MU,它有 3 個網站(他們沒有很多訪問者)和幾個 NodeJS 應用程序。

我需要切換到 Lighttpd,因為 Apache 2 使用了大約 59% 的伺服器 RAM,而現在我的 php-cgi 程序佔用了大約 43.6% 的伺服器 RAM:

  • 大多數情況下,兩個程序每個使用 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?

如果您設置 bin-path 則 lighttpd 負責生成 fcgi 程序,受以下限制:

"max-procs" => <integer>,             # optional - when omitted, default is 4

環境變數 PHP_FCGI_CHILDREN 是 php 執行檔在內部生成更多程序的附加提示,您可以將其設置為零。

您沒有指定 max-procs ,因此 lighty 產生了 4 個 procs,每個 procs 都有兩個額外的孩子 - 4

$$ max-procs $$* (1+2$$ PHP_FCGI_CHILDREN $$).

查看有關 php-cgi的 lighttpd文件。看來您可能需要設置max-procs指令來限制子程序的總數。

引用自:https://serverfault.com/questions/358985