1. 程式人生 > >HTTP 之 MPM工作模式

HTTP 之 MPM工作模式

mpm prefork worker

.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工作模式