HTTP 之 MPM工作模式
阿新 • • 發佈:2017-10-06
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工作模式