Гоняю php в режиме fcgi. Общение с Apache посредством mod_fcgid
(fastcgi.coremail.cn). Я так понимаю, что контроль над кол-вом
процессов осуществляется через dispatcher сцрипт и настройки самого
mod_fcgid. Так вот, скрипт у меня следуюшего вида:
Например:
<IfModule mod_fcgid.c>
Options +ExecCGI
AddHandler fcgid-script .php
FCGIWrapper "/fcgi/user/public_html/fcgid.sh" .php
IdleTimeout 60
IdleScanInterval 20
</IfModule>
где fcgid.sh и есть приведенный вами spawn скрипт.
Беда в большом кол-ве php5-cgi процессов. При нормальном режиме
больше 100, при нагруженном уже несколько сотен :-|
Просьба прежде всего к тем, кто работает с данной конфигурацией.
Каким образом можно ограничить кол-во запускаемых процессов без
ущерба для производительности?
Алексей
Сергей, спасибо за Ваш ответ.
Я подразумевал немного другое. Меня удивляет поведение этой связки в
сравнении с запуском php через spawn-fcgi. Почему конфигурация со
spawn-fcgi выдерживает куда большую нагрузку не плодя при этом огромное
кол-во php5-cgi процессов? Хотя и здесь и там происходит аналогичное
общение через UNIX socket.
В системе есть некоторые операции одновременной отсылки большого кол-ва
данных, выбранных из базы. Так вот, я тестировал на (nginx +
spawn-fcgi) и на (apache + fcgi dispatcher script). В последнем случае
постоянные проблемы и кол-во процессов, достигающих почти 4-х сотен.