登录

php-fpm 详解及生命周期

php
0 1815
2)CGI程序 = php-cgi

php-cgi就是一个遵守CGI协议的CGI程序

同时也就是PHP解释器

标准的CGI每个请求都会解析php.ini,初始化执行环境等,降低性能

每次修改配置之后需要重新php-cgi才能让php.ini生效

不能动态worker调度,只能一开始指定数量的worker

3)FastCGI协议

和CGI一样也是一个协议/规范,不过是再CGI的基础上优化,效率更高

用来提高CGI程序性能的

实现了CGI进程的管理

4)FastCGI程序 = php-fpm

php-fpm就是一个遵守FastCGI协议的FastCGI程序

FastCGI程序对CGI程序的管理模式

启动一个master进程,解析配置文件,初始化环境

启动多个worker子进程

接受到请求之后,传递给woker进程去执行

解决修改php.ini之后平滑重启问题

process_control_timeout:子进程接受主进程复用信号的超时时间(在规定时间内处理完请求,完成不了就不管了)

设定php-fpm留给fastcgi进程响应重启信号的时间

process_control_timeout = 0,也就是不生效,无法保证平滑重启

process_control_timeout设置过大可能导致系统请求堵塞

process_control_timeout =10的情况下,如果代码逻辑需要11s,重启旧可能导致代码执行部分退出

建议值:request_terminate_timeout

重启类型

优雅重启

强制重启


发表评论

0 个回复