ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] контроль над ко личеством запущенных php5-cg i




Sergej Kandyla wrote:

Aleks Feltin wrote:

Гоняю php в режиме fcgi. Общение с Apache посредством mod_fcgid (fastcgi.coremail.cn). Я так понимаю, что контроль над кол-вом процессов осуществляется через dispatcher сцрипт и настройки самого mod_fcgid. Так вот, скрипт у меня следуюшего вида:

#!/bin/sh
PHPRC="/etc/php5/apache2"
export PHPRC
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
exec /usr/bin/php5-cgi

Это скрипт стартер пхп  и его чаилдов.
Кто мешает указать в конфиге самого mod_fcgid нужные опции, такие как IdleTimeout etc ? (http://fastcgi.coremail.cn/doc.htm )
Уменьшил значение для загруженных виртуалхостов.

Например:
<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-х сотен.

Привожу на всякий случай конфиг для модуля.

<Ifmodule mod_fcgid.c>
 AddHandler fcgid-script .php
 SocketPath /var/lib/apache2/fcgid_sock/
 SharememPath /var/lib/apache2/fcgid_shm
 IPCCommTimeout 40
 IPCConnectTimeout 10
 OutputBufferSize 64
 ProcessLifeTime 240
 MaxRequestsPerProcess 500
 TerminationScore 10
 SpawnScoreUpLimit 10
 SpawnScore 1
 TerminationScore 2
 IdleTimeout 300
</IfModule>



 




Copyright © Lexa Software, 1996-2009.