Проблема с fpm на php 5.5

268 views
Skip to first unread message

Алексей Соколов

unread,
Nov 18, 2013, 6:49:20 AM11/18/13
to highloa...@googlegroups.com
Здравствуйте.

Используется следующая конфигурация:
1) веб-сервер: nginx/1.5.6
2) php+xcache:

php -v
PHP 5.5.6 (cli) (built: Nov 13 2013 07:48:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with XCache v3.1.0, Copyright (c) 2005-2013, by mOo
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
    with XCache Cacher v3.1.0, Copyright (c) 2005-2013, by mOo



Суть проблемы заключается в том, что по какой-то причине fpm не подхватывает некоторые опции, установленные для пула.
Появились такие сообщения в логе ошибок:

[18-Nov-2013 12:10:47] WARNING: [pool sitepool] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 297 total children
[18-Nov-2013 12:10:48] WARNING: [pool sitepool] server reached pm.max_children setting (300), consider raising it
 И это при том, что конфигурация pm имеет следующий вид:

pm = dynamic
pm.max_children = 500
pm.start_servers = 50
pm.min_spare_servers = 30
pm.max_spare_servers = 150

Судя по логам, fpm сбрасывает значение 500 в 300? В режиме debug ничего не написано об этом.


Так же есть еще проблема, которая возможно связана с вышеуказанной.
По какой-то причине процессы все время валятся с такими записями (режим debug):

[18-Nov-2013 13:35:49.144928] DEBUG: pid 25005, fpm_got_signal(), line 76: received SIGCHLD
[18-Nov-2013 13:35:49.144987] NOTICE: pid 25005, fpm_children_bury(), line 252: [pool sitepool] child 25238 exited with code 0 after 0.003081 seconds from start
[18-Nov-2013 13:35:49.145669] NOTICE: pid 25005, fpm_children_make(), line 421: [pool sitepool] child 25239 started
[18-Nov-2013 13:35:49.145689] DEBUG: pid 25005, fpm_event_loop(), line 419: event module triggered 1 events
[18-Nov-2013 13:35:49.148980] DEBUG: pid 25005, fpm_got_signal(), line 76: received SIGCHLD
[18-Nov-2013 13:35:49.149034] NOTICE: pid 25005, fpm_children_bury(), line 252: [pool sitepool] child 25239 exited with code 0 after 0.003374 seconds from start
[18-Nov-2013 13:35:49.149683] NOTICE: pid 25005, fpm_children_make(), line 421: [pool sitepool] child 25240 started
[18-Nov-2013 13:35:49.149703] DEBUG: pid 25005, fpm_event_loop(), line 419: event module triggered 1 events
[18-Nov-2013 13:35:49.153028] DEBUG: pid 25005, fpm_got_signal(), line 76: received SIGCHLD
[18-Nov-2013 13:35:49.153080] NOTICE: pid 25005, fpm_children_bury(), line 252: [pool sitepool] child 25240 exited with code 0 after 0.003403 seconds from start
[18-Nov-2013 13:35:49.153904] NOTICE: pid 25005, fpm_children_make(), line 421: [pool sitepool] child 25241 started
[18-Nov-2013 13:35:49.153940] DEBUG: pid 25005, fpm_event_loop(), line 419: event module triggered 1 events
[18-Nov-2013 13:35:49.737577] DEBUG: pid 25005, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool sitepool] currently 6 active children, 44 spare children, 50 running children. Spawning rate 1

По этим записям есть 2 вопроса:
1) Почему процессы вообще валятся, если "pm.max_requests = 0"? На сколько я помню, в версии php 5.4 такого небыло.
2) Почему такое малькое время выполнения работы ("0.003374 seconds from start")?


Вот весь конфиг пула:

[sitepool]
user = apache
group = apache
listen = /var/run/php-fpm/sitepool.sock
listen.backlog = 1024
pm = dynamic
pm.max_children = 500
pm.start_servers = 50
pm.min_spare_servers = 30
pm.max_spare_servers = 150
pm.max_requests = 0
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/sbin
php_admin_value[register_globals] = off
php_admin_value[session.name] = STATPHPSESSIONID



 Есть ли какие-то мысли по этой теме?

Sergey Kobzar

unread,
Nov 18, 2013, 7:12:21 AM11/18/13
to highloa...@googlegroups.com
On 11/18/13 13:49, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ wrote:
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
>
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫:
> 1) О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫: nginx/1.5.6
> 2) php+xcache:

О©╫ xcache О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ 5.5 О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ opcache?
О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫?

Alexey A. Rybak

unread,
Nov 18, 2013, 7:54:03 AM11/18/13
to highloa...@googlegroups.com

[18-Nov-2013 12:10:47] WARNING: [pool sitepool] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 297 total children
[18-Nov-2013 12:10:48] WARNING: [pool sitepool] server reached pm.max_children setting (300), consider raising it
 И это при том, что конфигурация pm имеет следующий вид:

pm = dynamic
pm.max_children = 500
pm.start_servers = 50
pm.min_spare_servers = 30
pm.max_spare_servers = 150

Судя по логам, fpm сбрасывает значение 500 в 300? В режиме debug ничего не написано об этом.

чудес не бывает, это я про "fpm сбрасывает значение 500 в 300".
если у вас в файле 500, а в логе 300, о чём это говорит? 
о том что надо под запущенным fpm смотреть phpinfo и внимательно смотреть, какой именно конфиг-файл читается.
также поможет grep pm.max_children = 300 ;)


--

wbr,
Alexey Rybak
Badoo Development (badoo.com)
Reply all
Reply to author
Forward
0 new messages