结论

master进程并不接收和分发请求,而是worker进程直接accpet请求后poll处理.

master进程不断调用epoll_wait和getsockopt是用来异步处理信号事件和定时器事件.

验证方法

把Nginx和fpm都设置成了1个worker进程观察,得出结论是不会经过fpm的master进程.

strace -e network -p fpm_master_pid
strace -e network -p fpm_worker_pid

总结

php-fpm是一个完全独立的程序,不依赖php-cgi,也不依赖php.因为php-fpm是一个内置了php解释器的FastCGI服务,启动时能够自行读取php.ini配置和php-fpm.conf配置.

master进程并不接收和分发请求,而是worker进程直接accept请求后poll处理.

master进程不断调用epoll_wait和getsockopt是用来异步处理信号事件和定时器事件.

这里提一下,Nginx也类似,master进程并不处理请求,而是worker进程直接处理,不过区别在于Nginx的worker进程是epoll异步处理请求,而PHP-FPM仍然是poll.

如果worker进程不够用,master进程会prefork更多进程,如果prefork达到了pm.max_children上限,worker进程又全都繁忙,这时master进程会把请求挂起到连接队列backlog里(默认值是511).

Nginx跟PHP-FPM分开,其实是很好的解耦,PHP-FPM专门负责处理PHP请求,一个页面对应一个PHP请求,页面中所有静态资源的请求都由Nginx来处理,这样就实现了动静分离,而Nginx最擅长的就是处理高并发.

PHP-FPM是一个多进程的FastCGI服务,类似Apache的prefork的进程模型,对于只处理PHP请求来说,这种模型是很高效很稳定的.

PHP-fpm的master进程杀死work还能处理任务吗相关推荐

  1. 使用极光/友盟推送,APP进程杀死后为什么收不到推送

    为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的android上面不建议线程守 ...

  2. 笔记本调用自身摄像头问题大汇总(video0找不到,进程杀死,资源锁问题,响应延迟等等)

    ROS调用笔记本摄像头和外界摄像头问题汇总(本人亲身经历) 运行打开摄像头命令必须在主虚拟机运行 一.video0找不到 本人想要调用笔记本摄像头完成一些基本的标定时候,遇到问题: 或者执行命令: l ...

  3. c# 关闭软件 进程 杀死进程

    c# 关闭软件 进程  杀死进程 foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByN ...

  4. nginx进程管理之master进程

    nginx分为single和 master两种进程模型.master模型为一个master模型和n个worker进程的工作方式 .本文分析nginx的 master进程做了哪些事情,它是如何管理好各个 ...

  5. android如何确保应用进程不被杀死,使得一个android应用不会被进程杀死

    怎样使一个Android应用不被杀死?(整理) (2011-12-02 18:50:54) 转载▼ 标签: it 参考:http://blog.csdn.net/windskier/article/d ...

  6. linux系统僵尸进程杀死,如何在Linux上杀死僵尸进程

    是什么导致Linux上的僵尸进程? 写得不好的父进程可能不会调用该wait()创建子进程时, 函数. 这意味着没有任何东西在监视子进程中的状态变化,并且该SIGCHLD信号将被忽略. 或者,可能是由于 ...

  7. kill进程_你还在使用kill -9 杀进程吗?从原理谈避免踩雷!

    你要"跑路"了吗? 只要你用过 UNIX/LINUX ,我敢打赌你大概率执行过这样一条命令,也就是俗话说的"杀进程": kill -9 执行它,是不是如同执行以 ...

  8. linux杀死oracle进程,杀死进程后,oracle数据库无法启动

    报错信息: 报错信息一: You are running addbctl.sh version 120.1 Starting the database PROD ... SQL*Plus: Relea ...

  9. 查看特定进程杀死进程方法

    1. 在linux服务器上执行如下命令 # ps -ef | grep tomcat 可以过滤出特定的应用,一个例子如下 等号=后面的路径就是应用的路径,可以根据这个路径来识别自己要操作的应用 可以发 ...

最新文章

  1. 知乎算法团队负责人孙付伟:Graph Embedding在知乎的应用实践
  2. SVO: 视觉SLAM中特征点法与直接法结合
  3. 图论 ---- 思维搜索全图任意位置传送 1520G - To Go Or Not To Go?
  4. php将科学计算法得出的结果转换成原始数据
  5. python 随机取列表值 重复_python怎么随机取列表的值
  6. 软件项目管理0723:一页项目管理-主任务
  7. 从零搭建 dubbogo
  8. Xilinx FIFO IP核使用
  9. MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart...
  10. NLP领域,哪些综述性的文章值得推荐?
  11. esp32的MQTT物联网开发记录
  12. 一次完整的HTTP请求过程(深入分析)
  13. 大学三年软件工程专业学习感受
  14. echart 动画 饼图_巧用EChart画动态饼图
  15. mac如何彻底删除/卸载程序
  16. Redis基本应用及Java代码实现
  17. 翻译:《JavaScript 权威指南(第5版)》第一章(一)
  18. 2016/10/30 宝贝蛋,我好想你。
  19. c语言流动字体显示的程序,1602字符液晶显示屏程序详解(C语言详细解说)
  20. Python绘制论文曲线图

热门文章

  1. ssh中添加隧道,访问目标机器上的地址
  2. sql优化之:数据库索引创建原则,or/in/union与索引优化,聚集索引/非聚集索引/联合索引/索引覆盖,MySQL冗余数据的三种方案,MySQL双主一致性架构优化(来源:架构师之路)
  3. ibatis中多表联接查询
  4. 05_学生管理系统,xml读写,布局的综合应用
  5. 1.httpClient和ScrollView
  6. Hibernate HQL基础 限定查询条件(这里面有各种条件查询)
  7. 系统架构设计师考试大纲
  8. s:action,s:param的用法
  9. 数据流图中flow不显示文字_利用Flow来进行旋转流体仿真
  10. (一)ubuntu下qtcreator +opencv下新建一个项目和调用caffe环境配置