Здравствуйте.
Используется следующая конфигурация:
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
>
Есть ли какие-то мысли по этой теме?
--
---
Вы получили это сообщение, поскольку подписаны на группу highload-php-ru.
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес highload-php-ru+unsubscribe@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.