LINUX.ORG.RU

php-fpm перестает отвечать на запросы, и плодит кучу процессов.

 , ,


0

1

Здравствуйте.

Есть довольно мощный сервер (выделенный, 4-ядра ксеон, 32 памяти, SSD). На котором по не понятной причине перестает работать php-fpm. В какое-то время он просто перестает отвечать на запросы, а в процессах висит куча его пулов.

root     17085  0.0  0.0 333852 20156 ?        Ss   Aug12   0:12 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data 25473  0.0  0.0 859832 26180 ?        Sl   07:30   0:00 php-fpm: pool www                                                       
www-data 25474  0.0  0.0 856492 19976 ?        Sl   07:30   0:00 php-fpm: pool www                                                       
www-data 25477  0.0  0.0 855764 21748 ?        Sl   07:30   0:00 php-fpm: pool www                                                       
www-data 25479  0.0  0.0 855688 20408 ?        Sl   07:30   0:00 php-fpm: pool www                                                       
www-data 25485  0.0  0.0 854708 20112 ?        Sl   07:31   0:00 php-fpm: pool www

и таких 202 штуки.

В логах кроме ошибок nginx ничего нету (php5-fpm лог чистый)

2015/08/14 09:00:11 [error] 17824#0: *596666 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 180.153.182.101, server: example.ru, request: "GET /ballu/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:8888", host: "www.example.ru", referrer: "http://www.example.ru/ballu/"
2015/08/14 09:13:42 [error] 17822#0: *596916 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 80.251.228.162, server: example.ru, request: "GET /100053721/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:8888", host: "www.example.ru"

и все в таком духе

конфиг /etc/php5/fpm/pool.d/www.conf (коменты удалены)

[www]
user = www-data
group = www-data
listen = 127.0.0.1:8888; 
pm = dynamic
pm.max_children = 200
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 10 
access.log = /var/log/php5-fpm/$pool.access.log 
chdir = /
security.limit_extensions = .php 

конфиг /etc/php5/fpm/php-fpm.conf (коменты удалены)

[global]
pid = /run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
log_level = debug
emergency_restart_threshold = 8
emergency_restart_interval = 60
process_control_timeout = 10  
include=/etc/php5/fpm/pool.d/*.conf

До недавнего времени, работал на сокетах. Но поскольку проблема проявляется стабильно, попробовал перевести на порты. Результата нет. Не могу понять в чем проблема.


плодит кучу процессов.
Connection timed out

PHP-скрипты работают слишком долго, запросы не успевают отрабатываться.

Для начала — что-то типа

php.ini:

max_execution_time = 10

Или под высокой нагрузкой даже меньше, 3-5 сек.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

уже

Там уже стоит,

max_execution_time = 3600

в соответствующем php.ini

и памяти там достаточно.

По логике, суть ситуации в том, что у меня просто выбираются все свободные chldren (которых 200 штук), и новые просто не могут создаться.

Но я не понимаю чем они заняты, и как это посмотреть?

merlex
() автор топика
Ответ на: уже от merlex

max_execution_time = 3600

Вот когда у тебя скрипты подвисают, они и ждут по часу каждый :)

Но я не понимаю чем они заняты, и как это посмотреть?

Поставь 5-10-30 секунд. И лови в логах, в каком месте будет ошибка вылетать.

Более точно можно понять с установкой xhprof или xdebug (важно помнить, что когда последний подключен к PHP то тормозит скорость работы почти в 10 раз даже когда выключен).

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

xdebug (важно помнить, что когда последний подключен к PHP то тормозит скорость работы почти в 10 раз даже когда выключен).

И место на харде быстро заканчивается.

ThisNameWasFree
()
Ответ на: уже от merlex

Была такая же трабла с OwenCloud, решилось с обновлением ОС. Полагаю, что проблема в коде.

Valor
()
Ответ на: комментарий от kiotoze

Ну у меня счас одно предположение.

Гдето (пока не знаю) где, косяк в коде, который вызывает зацикливание (или просто очень долгую отработку), в какой-то момент, кто-то или что-то, начинает вызывать этот косяк, отсюда забивается все 200 чилдренов, и на нового чилдрена просто нет ресурса.

merlex
() автор топика
Ответ на: комментарий от ThisNameWasFree

И место на харде быстро заканчивается.

При выключенном автостарте xdebug — нет :) Но вот скорость падает сильно... Поэтому под нагрузкой — только xhprof.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.