Welcome! Log In Create A New Profile

Advanced

php-fpm dies when reaches max_children

March 25, 2012 07:42AM
Приветствую

Не уверен, что по адресу...

На сервере раз в неделю запускается тяжелый скрипт. В это время
увеличивается число php-fpm процессов и при достижении max_children
лимита php-fpm помирает.

Linux 3.2.1-gentoo-r2 x86_64
php-5.3.9

/etc/php/fpm-php5.3/php-fpm.conf:
[site]
listen = 127.0.0.1:9002

user = site
group = site

pm = dynamic
pm.max_children = 256
pm.start_servers = 16
pm.min_spare_servers = 16
pm.max_spare_servers = 24

pm.status_path = /phpfpm_status
ping.path = /phpfpm_ping

request_slowlog_timeout = 10
slowlog = /var/log/php/php-fpm-$pool_slow.log

php_admin_flag[log_errors] = on
php_admin_value[date.timezone] = Europe/London
php_admin_value[error_log] = /var/log/php/php-fpm-$pool_error.log
php_admin_value[memory_limit] = 256M
php_flag[short_open_tag] = on


В логах это выглядит так:
[25-Mar-2012 02:14:29] WARNING: [pool site] seems busy (you may need to
increase pm.start_servers, or pm.min/max_spare_servers), spawning 16
children, there are 6 idle, and 241 total children
[25-Mar-2012 02:14:34] NOTICE: child 6399 stopped for tracing
[25-Mar-2012 02:14:34] NOTICE: about to trace 6399
[25-Mar-2012 02:14:34] ERROR: failed to ptrace(PEEKDATA) pid 6399:
Input/output error (5)
[25-Mar-2012 02:14:34] NOTICE: finished trace of 6399
[25-Mar-2012 02:14:34] NOTICE: child 6444 stopped for tracing
[25-Mar-2012 02:14:34] NOTICE: about to trace 6444
[25-Mar-2012 02:14:34] ERROR: failed to ptrace(PEEKDATA) pid 6444:
Input/output error (5)
[25-Mar-2012 02:14:34] NOTICE: finished trace of 6444
[25-Mar-2012 02:14:34] NOTICE: child 6445 stopped for tracing
[25-Mar-2012 02:14:34] NOTICE: about to trace 6445
[25-Mar-2012 02:14:34] NOTICE: finished trace of 6445
[25-Mar-2012 02:14:34] NOTICE: child 6451 stopped for tracing
[25-Mar-2012 02:14:34] NOTICE: about to trace 6451
[25-Mar-2012 02:14:34] ERROR: failed to ptrace(PEEKDATA) pid 6451:
Input/output error (5)
...
[25-Mar-2012 02:16:34] NOTICE: child 6358 stopped for tracing
[25-Mar-2012 02:16:34] NOTICE: about to trace 6358
[25-Mar-2012 02:16:35] NOTICE: finished trace of 6358
[25-Mar-2012 02:16:35] NOTICE: child 6383 stopped for tracing
[25-Mar-2012 02:16:35] NOTICE: about to trace 6383
[25-Mar-2012 02:16:35] NOTICE: finished trace of 6383
[25-Mar-2012 02:16:35] NOTICE: child 6456 stopped for tracing
[25-Mar-2012 02:16:35] NOTICE: about to trace 6456
[25-Mar-2012 02:16:35] NOTICE: finished trace of 6456
[25-Mar-2012 02:16:35] NOTICE: Finishing ...
[25-Mar-2012 02:16:37] NOTICE: exiting, bye-bye!


Как решение, можно увеличить max_children, но IMO это не совсем правильно.

Я ожидал след. поведения:
если число процессов равно max_children, то перестают создаваться новые
чаилды, но php-fpm прдолжает обслуживать существующие соединения, но не
помирать совсем же!

Any ideas?

Спасибо.

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

php-fpm dies when reaches max_children

sergey.kobzar March 25, 2012 07:42AM

Re: php-fpm dies when reaches max_children

Andrey Repin March 25, 2012 08:06AM

Re: php-fpm dies when reaches max_children

sergey.kobzar March 25, 2012 08:38AM

Re: php-fpm dies when reaches max_children

Vladimir Rusinov March 25, 2012 02:04PM

Re: php-fpm dies when reaches max_children

sergey.kobzar March 26, 2012 06:04AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 281
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready