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

FcgidMaxProcesses не соблюдаются

Я использую FastCGI (fcgi). У меня проблема, когда создается больше процессов PHP, чем должно быть, что съедает мою оперативную память.

Я использую WHM, поэтому установил следующие параметры PHP через веб-интерфейс WHM> Конфигурация Apache> Включить редактор> Предварительно включить VirtualHost:

<IfModule mod_fcgid.c>
    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 500
    FcgidMaxRequestsPerProcess 500

    FcgidMaxProcesses 15
    FcgidMinProcessesPerClass 0
    FcgidMaxProcessesPerClass 8

    FcgidIdleTimeout 30
    FcgidIdleScanInterval 15
    FcgidProcessLifeTime 60
    FcgidIOTimeout 300

    FcgidMaxRequestLen 268435456
</IfModule>

(Обычно эти настройки входят в /usr/local/apache/conf/php.conf, но этот файл перезаписывается WHM при изменении различных настроек, поэтому мне пришлось вставить их в другое место. Вышеупомянутый метод был рекомендован на форуме cPanel и приводит к включению настроек в конфигурацию Apache.)

Однако несмотря на FcgidMaxProcesses 15, Я нашел через top что до 45 процессов PHP выполняются одновременно во время пикового использования (а может и больше). Например, вот скриншот, сделанный на прошлых выходных:

снимок экрана с верхним выводом http://f.cl.ly/items/1H2M452J1K2p0Z231H2y/Screen%20Shot%202013-01-19%20at%207.16.44%20AM-2.png

Я действительно хочу ограничить его максимум 15 процессами. (Хотя похоже, что у меня есть свободная оперативная память, на самом деле она составляет 2 ГБ + 1 ГБ. Как правило, мне нужно, чтобы она была меньше 2 ГБ.)

Это сервер Apache, работающий под управлением CentOS 6, Apache 2 (Worker MPM), PHP 5.3.20 (FastCGI / fcgi) и MySQL 5.5.28. 2 ГБ ОЗУ (3 ГБ с возможностью наращивания), 24 процессора.

Я считаю, что следующий подход к решению этой проблемы в cPanel может быть правильным: http://www.ray.45press.com/configure-mpm-apache-xcache-fcgid-in-cpanel/

В частности, это связано с редактированием /usr/local/cpanel/cgi-sys/php5 включить следующие строки:

export PHP_FCGI_CHILDREN=1
export PHP_FCGI_MAX_REQUESTS=10000

Но будь уверен, что PHP_FCGI_MAX_REQUESTS соответствует FcgidMaxRequestsPerProcess из конфигурации Apache.

Далее вы хотите обратить внимание на примечание в файле о копировании этого в соответствующее место (/var/cpanel/conf/apache/wrappers/php5), чтобы он сохранялся при обновлении apache или php.