php-fpm三种对子进程的管理方式

2021-02-05 971 阅读 0评论

php-fpm配置

 配置文件:php-fpm.conf 

 开启慢日志功能的:

slowlog = /usr/local/var/log/php-fpm.log.slow

request_slowlog_timeout = 5s

当某个请求的时间超过了5秒,就会在慢日志中记录相应的记录,注意上面的时间5s,不能忽略了单位,相应的还有其他单位,m分,h时

php-fpm慢日志会记录下进程号,脚本名称,具体哪个文件哪行代码的哪个函数执行时间过长:

[21-Nov-2016 10:30:38] [pool www] pid 11877

script_filename = /var/www/ceshi/c.php

[0xb70fb88c] sleep() /var/www/ceshi/c.php:2

通过日志,我们就可以知道第2行的sleep 函数有点问题,这样我们就能追踪问题了。


Fpm的三种模式

static静态模式

pm=staticpm.max_children = 10始终保持10个worker子进程

dynamic动态模式

pm=dynamicpm.min_spare_servers = 1 //所需的空闲服务器进程的最小数目pm.max_spare_servers = 3 //所需的空闲服务器进程的最大数目pm.max_children = 10 //最大子进程数pm.start_servers = 2//最小子进程数量

ondemand按需模式

pm=ondemand
pm.process_idle_timeout = 10pm.process_idle_timeout的值(默认值为10s),则关闭该worker。这个机制可能会关闭所有的worker
php-fpm启动的时候,不会启动任何一个worker,而是按需启动,只有当连接过来的时候才会启动。
启动的最大worker数决定于pm.max_children的值,同时受限全局配置process.max。

Fpm的主进程与子进程关系

1.kill掉master进程,留下worker进程

kill master进程号

master只是负责监听管理工作,并不是很多人认为的把客户端发来的请求分给
worker进程处理,而是由worker进程负责客户端的请求监听和处理。

2.kill掉worker进程,留下master进程

kill worker进程号

一旦kill掉worker进程后,会重启一个新的worker进程。因此客户端请求肯定会得到响应处理。
这进一步验证了的上面的结论,master进程负责监听子进程的状态,子进程挂掉之后,会发信号给master
进程,然后master进程重新启一个新的worker进程。
喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 971人围观)