请求之后永远不会放在队列中 pm.max_children 从 Nginx 和 PHP-FPM
一旦游泳池到达 pm.max_children, Nginx 在尝试发送新请求时开始超时 PHP-FPM. "max listen queue" 总是平等的 0 到页面 php-status.
PHP-FPM 5.5.16
Nginx 1.6.1
这是一个示例池 php-fpm:
PHP-FPM 5.5.16
Nginx 1.6.1
这是一个示例池 php-fpm:
[example]
catch_workers_output = no
; Configure listener
listen = /var/run/php-fpm/example.sock
listen.backlog = 65535
listen.owner = nginx
listen.group = nginx
; Unix user/group of processes
user = nginx
group = nginx
; Choose how the process manager will control the number of child processes.
pm = ondemand
pm.max_children = 10
pm.max_requests = 200
pm.process_idle_timeout = 30s
pm.status_path = /status
; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
; Host specific php ini settings here
php_admin_flag[log_errors] = on
php_admin_value[open_basedir] = /tmp:/var/www/apc:/var/www/wordpress/example
php_admin_value[error_log] = /var/log/php-fpm/example.log
没有找到相关结果
已邀请:
1 个回复
董宝中
赞同来自:
http://php.net/manual/en/insta ... n.php
:
子公司数量 ... 将在何时创建 pm 构建为动态。
此选项设置对将提供服务的同时请求的数量限制。
但是,每个请求应该相当快速地处理,以便为下一个查询释放该过程。 如果不,
可能是报告 «502 Bad Gateway», 只要没有更多的要求可以处理。
再一次,检查设置的值
配置
. 它决定了队列长度 (
https://myjeeva.com/php-fpm-configuration-101.html
):
争论 backlog 确定等待队列的最大长度。
但是,该值受基本系统的限制。 看:
据我所知,不可能将请求排队到升序 (
), 如果这会导致错误。 尽管如此,您可以指定 nginx 在错误的情况下切换到另一个过程。 这可能导致例如在客户端重新启动。
如果不是
/
, 但是,实际问题是为什么请求块
加工这么久。