PHP相关 PHP-FPM

PHP-FPM采用多进程模型,包括MASTER和WORKER进程。MASTER进程负责管理WORKER,通过共享内存监控其状态并发送信号进行控制。WORKER进程处理请求,每个WORKER同一时刻仅处理一个请求。在PHP-FPM生命周期中,涉及模块初始化、请求初始化、脚本执行、请求结束和模块关闭等阶段。配置上,STATIC模式预生成固定数量的WORKER,适合秒杀场景,而DYNAMIC模式动态调整WORKER,适用于节约内存但可能应对不了大规模并发。
摘要由CSDN通过智能技术生成

PHP-FPM是一种多进程模型,由master和worker组成

  1. MASTER进程和WORKER进程

MASTER进程

当master进程启动时,会创建一个socket,但是他本身并不接收/处理请求。他会fork出子进程来完成请求的接收和处理。所以,master的主要职责是管理worker进程,比如fork出worker进程,或者kill掉worker进程。

master进程并不直接与worker进程进行通信,那么他是如何管理worker进程呢?实际上,master进程通过共享内存的方式来读取worker进程的状态信息,包括:worker进程当前状态,worker进程已经处理的请求数量等等。master进程会通过发送信号的方式来kill掉worker进程。

WORKER进程

Fpm中的worker进程的主要工作是处理请求。每个worker进程会竞争Accept请求,接收成功的那一个来处理本次请求。请求处理完毕后又重新进入等待状态。此处需要注意的是:一个worker进程在同一时刻只能处理一个请求。这与Nginx的事件驱动模型有很大的区别。Nginx的子进程使用epoll来管理socket,当一个请求的数据还未发送完成的话他就会处理下一个请求,即同一时刻,一个子进程会连接多个请求。而Fpm的这种子进程处理方式则大大简化了PHP的资源管理,使得在Fpm模式下我们不需要考虑并发导致的资源冲突。

  1. PHP-FPM和PHP的生命周期

PHP单进程的生命周期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值