Назад | Перейти на главную страницу

Как эффективно уменьшить количество запущенных процессов php-cgi?

Мой сервер - Linode 512, и на нем я запускаю Wordpress MU с 3 веб-сайтами (на них не так много посетителей) и парой приложений NodeJS.

Мне нужно переключиться на Lighttpd, потому что Apache 2 использовал около 59% ОЗУ сервера, а теперь у меня процессы php-cgi занимают около 43,6% ОЗУ сервера:

Как мне уменьшить количество этих процессов? Я почти уверен, что они не все нужны для трафика, который получает этот сервер ...

Я пробовал разрешить только 2 детей, но у меня все еще есть эти 10 ... Это мой раздел fastcgi.server в lighttpd.conf.

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, чтобы использовать меньше оперативной памяти?

Если вы установите bin-path, тогда lighttpd отвечает за порождение процессов fcgi, ограниченных:

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

Переменная среды PHP_FCGI_CHILDREN - это дополнительная подсказка исполняемому файлу php для внутреннего порождения большего количества процессов, вы можете установить ее в ноль.

Вы не указываете max-procs, поэтому есть 4 процесса, порожденные lighty, и каждый из них имеет два дополнительных дочерних элемента - 4 [max-procs] * (1 + 2 [PHP_FCGI_CHILDREN]).

Проверьте lighttpd документация по поводу php-cgi. Кажется, вам может потребоваться установить max-procs директива для ограничения общего количества дочерних процессов.