nginx + spawn-fcgi виснут php воркеры

Evgeni Grigorenko xcrew-partizan at mail.ru
Thu Oct 8 10:14:05 MSD 2009


nginx at rufox.ru пишет:
> А в nginx случайно никак нельзя прописать лимит одновременных 
> подключений на fastcgi сервер?
>
>
> Борис Долгов пишет:
>> Лучше посмотрите strace'ом, на чем заблокировался php-worker и
>> попытайтесь устранить это вместе с php-программистами.
>>
>> 2 октября 2009 г. 13:35 пользователь nginx at rufox.ru <nginx at rufox.ru> написал:
>>   
>>> Согласен, что намудрено. Туда просто программистами была заложена какая-то
>>> идея по распределению серверов. В том месте, о котором написал в примере,
>>> всё-равно настою чтобы упростили, т.к. это жутко не рационально. Да и
>>> распределять в будущем будем скорее всего как-то по-другому. Но php виснет и
>>> где-то в других местах. Просто пока не удалось отследить где именно.
>>> Почему курл не знаю. Там насколько понял всего один параметр отдаётся. Оно
>>> даже с file_get_content() работает. Но и с ним тоже виснет. Мне кажется, что
>>> зависает из-за того что неправильно выстраивается очередь на обработчики.
>>> Т.е. 2.php назначается обработчику, на который передали 1.php . А очередь
>>> при этом обрабатывается каждым воркером в один поток. Может этим как-то
>>> можно управлять?
>>>
>>> Anton Bessonov пишет:
>>>     
>>>> Что-то как-то намудрённо... Почему курл, если скрипт находится локально?
>>>> Почему не натравить парзер?
>>>>
>>>> nginx at rufox.ru schrieb:
>>>>       
>>>>> Например. Есть скрипт 1.php , который прежде чем выдаст ответ,
>>>>> запрашивает инфу у 2.php (через curl)
>>>>> запущено 50 обработчика php
>>>>> Если обратится к 1.php в 51 и более паралельных запросов, все обработчики
>>>>> полностью виснут. После этого приходится убивать php при помощи
>>>>> killall -9 php-cgi
>>>>> иначе не убивается
>>>>> пока просто отделили под 2.php несколько обработчиков на другом порту
>>>>> хотя и сейчас местами наблюдаются подвисания, но обычно отвисает сам
>>>>> Проблема похоже в php. Может кто-нибудь уже решил её?
>>>>> Кстати пока разбирался с этим замерял производительность связки на
>>>>> тестовой машине (средний домашний двухядерник).
>>>>> eaccelerator включён
>>>>> Скрипт с обычным phpinfo(); обрабатывается примерно 430 раз в секунду
>>>>> Рабочие скрипты не больше 100 в секунду. Причём, касательно этих 100,
>>>>> такое ощущение, что где-то, что-то нужно "подкрутить", т.к. общая загрузка
>>>>> системы во время теста 65-70%
>>>>> Причём пробовал apache 1.3.x + mod_php и получил примерно такую же
>>>>> производительность php (ниже процентов на 10).
>>>>> Действительно что-то нужно донастроить, или это нормальные показатели для
>>>>> php?
>>>>>
>>>>>
>>>>>
>>>>>         
>>>>       
>>>
>>>     
>>
>>
>>
>>   
>
http://sysoev.ru/nginx/docs/http/ngx_http_limit_req_module.html





More information about the nginx-ru mailing list