Как регулировать количество процессов, обрабатывающих PHP-ск
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 01.08.10 15:18
Оценка:
Подруга купила скрипты интернет-магазина на www.phpshop.ru. Поначалу поставили их на shared-хостинг vexxhost.com — работало идеально, потом там перенастроили сервер и все упало, поддержка не отвечала неделю — купили такой же shared-хостинг у hostgator.com. Перенесли скрипты туда — начались периодические ошибки Internal Server Error 500 из-за превышения количества одновременно запущенных процессов (25). При этом к магазину обращаются только с одного, максимум — двух компьютеров. То есть, о перегрузке речи не идет.

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

В инете вычитал, что 25 процессов должно быть более чем достаточно для среднего сайта, и у некоторых shared-хостингов оно вообще 10-20, и ничего.

Тамошняя поддержка на мой вопрос, кто ответственен за размножение процессов, заявляет, что это делают сами скрипты, а Apache, PHP и MySQL тут ни при чем. Я в PHP полный нуль, поискал в скриптах "fork" и "spawn" — такого нигде нет. MySQL-база используется только одна. PHP работает в режиме FastCGI. Вот конфигурация PHP на сервере.

Процессы действительно создаются исключительно по воле скриптов, или таки их создают Apache, PHP или MySQL? Если второе — как можно ограничить количество процессов, порождаемых для обработки? Магазин пока совершенно не раскручен, брать под него сразу выделенный хостинг не хочется — пусть бы работал чуть медленнее, лишь бы не давал отказов. Перерыл кучу обсуждений по этим вопросам, но внятного ответа так и не нашел.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как регулировать количество процессов, обрабатывающих PH
От: Каспер Украина  
Дата: 02.08.10 12:24
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Процессы действительно создаются исключительно по воле скриптов, или таки их создают Apache, PHP или MySQL? Если второе — как можно ограничить количество процессов, порождаемых для обработки? Магазин пока совершенно не раскручен, брать под него сразу выделенный хостинг не хочется — пусть бы работал чуть медленнее, лишь бы не давал отказов. Перерыл кучу обсуждений по этим вопросам, но внятного ответа так и не нашел.


Ограничение количества FastCGI процессов поддается настройке, но дело даже не в этом. Насколько мне известно, на большинстве shared-хостингов такой вопрос не стоит, потому что php работает как модуль апача libphp5.so, без всяких CGI/FastCGI. А PHP через FastCGI используют в основном с неапач-серверами – lighthttpd, nginx, IIS.

Может, это только у отечественных хостеров, а у буржуйских по-другому?
Re[2]: Как регулировать количество процессов, обрабатывающих
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.08.10 12:58
Оценка:
Здравствуйте, Каспер, Вы писали:

К>Ограничение количества FastCGI процессов поддается настройке


Она доступна пользователю, или настраивается сразу для всей системы в рутовых конфигах?

К>Насколько мне известно, на большинстве shared-хостингов такой вопрос не стоит, потому что php работает как модуль апача libphp5.so, без всяких CGI/FastCGI. А PHP через FastCGI используют в основном с неапач-серверами – lighthttpd, nginx, IIS.


Смотрел несколько буржуйских shared-хостингов — везде HTTP-сервером трудится апач, но PHP работает через FastCGI, хотя в форумах встречались упоминания и таких, где он подключен к апачу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как регулировать количество процессов, обрабатывающих PH
От: Anton Batenev Россия https://github.com/abbat
Дата: 02.08.10 20:46
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ> Перенесли скрипты туда — начались периодические ошибки Internal Server Error 500 из-за превышения количества одновременно запущенных процессов (25). При этом к магазину обращаются только с одного, максимум — двух компьютеров. То есть, о перегрузке речи не идет.


Логи есть? Можно взглянуть (ошибок и access) за пару подобных случаев?

ЕМ> Когда смотрю список процессов — вижу в нем по несколько штук с одними и теми же php-файлами в командной строке. Через минуту-другую эта куча убивается, и снова все какое-то время работает нормально.


Если voobrazilia.com и есть тот самый магазин, то там флеш-ролик раз в секунду (и чаще) что-то подсасывает с сервера, а судя по тому, что статику отдает апач — это и есть +2 лишних запроса, которые, возможно, и порождают кучу процессов (там еще возможно ограничение на скорость отдачи, что только усугубляет).

ЕМ> Процессы действительно создаются исключительно по воле скриптов, или таки их создают Apache, PHP или MySQL? Если второе — как можно ограничить количество процессов, порождаемых для обработки? Магазин пока совершенно не раскручен, брать под него сразу выделенный хостинг не хочется — пусть бы работал чуть медленнее, лишь бы не давал отказов. Перерыл кучу обсуждений по этим вопросам, но внятного ответа так и не нашел.


Если магазин на базе открытых скриптов и не использует ZendOptimizer (исходники не шифрованы), то можешь стукнуть по мылу в профиле — у меня есть сервер, можем поднять тестовую версию на нем и хорошо покататься по ней танком в плане производительности и прочего.
avalon 1.0rc3 rev 346, zlib 1.2.3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.