HTTP 之 MPM工作模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 之 MPM工作模式相关的知识,希望对你有一定的参考价值。

.MPM:multi-processing  module多路处理模块,支持三种I/O模型:prefork,worker,event

.prefork:多进程I/O模型,每个进程响应一个请求,默认模型

一个主进程:生成和回收n个子进程,创建套接字,不响应请求

多个子进程:工作work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求,最大不超过1024个

会预先准备好子进程等待用户的访问,系统调用fork函数

prefork用一个进程相应用户的请求

.worker:复用的多进程I/O模型,多进程多线程,IIS使用此模型

一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求:m*n

缺点是当一个线程受影响时,该子进程的所有线程都会受到影响

.event:事件驱动模型(worker模型的变种)

一个主进程:生成m个子进程,每个进程直接响应n个请求,并发响应请求:m*n,有专门的线程来管理这些keep-alive类型的线程,(这里是比worker改进的地方)当有真实请求时,将请求传递给服务线程,执行完毕后,又允许释放,这样增强了高并发场景下的请求处理能力

centos6默认httpd-2.2: event测试版

centos7默认httpd-2.4:event稳定版

prefork MPM:进程相应请求

技术分享

worker MPM:线程响应用户的请求

技术分享

event MPM:比worker多了一个监管的模型

技术分享

进程角色,这里的worker就是线程的意思

技术分享


本文出自 “阳光运维” 博客,请务必保留此出处http://ghbsunny.blog.51cto.com/7759574/1970523

以上是关于HTTP 之 MPM工作模式的主要内容,如果未能解决你的问题,请参考以下文章

http 工作模式与模块

Apache的工作模式

Apache的工作模式

解析 Apache 的三种 MPM 工作模式

apache的mpm工作模式

linux mpm模式用prefork好还是worker好