Por que o PHP-FPM está usando somente um processo?

3

Olhando para a minha página de estatísticas do PHP-FPM, parece que apenas um processo está lidando com todas as conexões agora.

Meu palpite é que as solicitações estão sendo executadas tão rapidamente que, até o momento, não é necessário usar outro processo. Seria esse o caso?

Veja o que estou vendo na minha página de estatísticas do PHP-FPM:

pool                    www
process manager         static
start since             432796
accepted conn           90399
listen queue            0
max listen queue        1
listen queue len        128
idle processes          63
active processes        1
total processes         64
max active processes    6
max children reached    0

Isto é o que meu Config do PHP-FPM parece:

[General]
 pid = /var/run/php5-fpm.pid
 error_log = /var/log/php5-fpm.log
 syslog.ident = php-fpm
 syslog.facility = 24
 log_level = unknown value
 emergency_restart_interval = 0s
 emergency_restart_threshold = 0
 process_control_timeout = 0s
 process.max = 0
 process.priority = undefined
 daemonize = yes
 rlimit_files = 30000
 rlimit_core = 0
 events.mechanism = epoll

[www]
 prefix = undefined
 user = www-data
 group = www-data
 listen = 127.0.0.1:9000
 listen.backlog = 128
 listen.owner = undefined
 listen.group = undefined
 listen.mode = undefined
 listen.allowed_clients = 127.0.0.1
 process.priority = undefined
 pm = static
 pm.max_children = 64
 pm.start_servers = 8
 pm.min_spare_servers = 4
 pm.max_spare_servers = 10
 pm.process_idle_timeout = 10
 pm.max_requests = 12800
 pm.status_path = /fpm
 ping.path = undefined
 ping.response = undefined
 access.log = undefined
 access.format = undefined
 slowlog = /var/log/www.log.slow
 request_slowlog_timeout = 5s
 request_terminate_timeout = 120s
 rlimit_files = 30000
 rlimit_core = 0
 chroot = undefined
 chdir = /
 catch_workers_output = yes
 security.limit_extensions = .php .phar
    
por nojak 04.09.2012 / 18:01

1 resposta

2

Why Is PHP-FPM Only Using One Process?

Porque ... 1 é o suficiente. Mas isso não significa que o número de processos ativos sempre seja 1.

Divida o terminal em duas regiões: no primeiro digite:

$ watch 'lynx -dump http://domain.com/fpm'

e no segundo, tente algo assim:

$ ab -c 1000 -n 10000 http://domain.com/fpm

veja o que está acontecendo na primeira região:

pool:                 www
process manager:      dynamic
start time:           04/Sep/2012:23:19:24 +0700
start since:          3441
accepted conn:        42296
listen queue:         0
max listen queue:     8
listen queue len:     128
idle processes:       18
active processes:     3
total processes:      21
max active processes: 21
max children reached: 0
    
por 04.09.2012 / 19:21