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:进程相应请求

HTTP 之 MPM工作模式_第1张图片

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

HTTP 之 MPM工作模式_第2张图片

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

HTTP 之 MPM工作模式_第3张图片

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

HTTP 之 MPM工作模式_第4张图片

你可能感兴趣的:(HTTP 之 MPM工作模式)