Apache Web Server - httpd的HTTP的多路处理模块MPM
生活随笔
收集整理的這篇文章主要介紹了
Apache Web Server - httpd的HTTP的多路处理模块MPM
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
同步synchronous 和 異步asynchronous 是站在被調(diào)用者角度:
??????? 同步synchronous:進程發(fā)起一個調(diào)用,在沒有獲得結(jié)果之前,被調(diào)用者是不回返回的.
?
??????? 異步asynchronous: 進程發(fā)起一個調(diào)用,即使不能立即獲得結(jié)果,被調(diào)用也會返回,返回一個未完成的狀態(tài),當完成的時候,內(nèi)核通知進程.
阻塞 和 非阻塞 是站在調(diào)用者的角度:
?????? 阻塞 進程發(fā)起一個調(diào)用,被調(diào)用者 同步執(zhí)行,進程進入阻塞的狀態(tài).
?????? 非阻塞 進程發(fā)起一個調(diào)用,被調(diào)用者 異步執(zhí)行,進程進入非阻塞的狀態(tài).
磁盤的I/O模型:
?????? 1 同步阻塞模型
?????? 2 異步非阻塞模型
進程讀取數(shù)據(jù)的過程:
MPM多路處理模塊: multipath process module
1 prefork 多路處理模塊 一個進程響應(yīng)一個請求,每一個進程的I/O模型是同步阻塞, 該模型穩(wěn)定性好.
2 worker? 多路處理模塊 一個進程創(chuàng)建多個線程來響應(yīng)多個用戶的請求,每個線程的I/O模型是同步阻塞,因此每一個線程只能響應(yīng)一個請求,該模型中的每一個線程可以共享進程的內(nèi)存中的資源,但是穩(wěn)定性沒有prefork好.
3 event?? 多路處理模塊 一個進程創(chuàng)建多個線程來響應(yīng)多個用戶的請求,每個線程的I/O模型是異步非阻塞,因此每一個線程可以響應(yīng)多個請求,該模型中每一個線程可以共享進程的內(nèi)存中資源,但是翁定性不如prefork 好.
配置:(httpd-2.4版本)
<IfModule mpm_prefork_module>
StartServers?? ??? ?表示啟動進程的時候啟動的工作進程的數(shù)目
MinSpaceServers?? ??? ?表示最小空間進程的數(shù)目
MaxSpaceServers?? ??? ?表示最大空間進程的數(shù)目
MaxRequestWorkers?? ?表示并發(fā)量的大小
MaxRequestsPerChild?? ?表示每個進程最大的服務(wù)次數(shù) 超過之后就銷毀 ?? ??? ??? ?? 0表示永久有效
</IfModule>
<IfModule mpm_worker_module>
StartServers?? ??? ?表示啟動進程的時候啟動的工作進程的數(shù)目
MinSpaceThreads?? ??? ?表示最小空閑線程的數(shù)目
MaxSpaceThreads?? ??? ?表示最大空閑線程的數(shù)目
ThreadsPerChild ?? ?每一個進程能夠創(chuàng)建的線程的數(shù)目
MaxRequestWorkers?? ?并發(fā)量
MaxRequestsPerChild ?? ?同上
</IfModule>
<IfModule mpm_event_module>
StartServers?? ??? ?表示啟動進程的時候啟動的工作進程的數(shù)目
MinSpaceThreads?? ??? ?表示最小空閑線程的數(shù)目
MaxSpaceThreads?? ??? ?表示最大空閑線程的數(shù)目
ThreadsPerChild ?? ?每一個進程能夠創(chuàng)建的線程的數(shù)目
MaxRequestWorkers?? ?并發(fā)量
MaxRequestsPerChild ?? ?同上
</IfModule>
??????? 同步synchronous:進程發(fā)起一個調(diào)用,在沒有獲得結(jié)果之前,被調(diào)用者是不回返回的.
?
??????? 異步asynchronous: 進程發(fā)起一個調(diào)用,即使不能立即獲得結(jié)果,被調(diào)用也會返回,返回一個未完成的狀態(tài),當完成的時候,內(nèi)核通知進程.
阻塞 和 非阻塞 是站在調(diào)用者的角度:
?????? 阻塞 進程發(fā)起一個調(diào)用,被調(diào)用者 同步執(zhí)行,進程進入阻塞的狀態(tài).
?????? 非阻塞 進程發(fā)起一個調(diào)用,被調(diào)用者 異步執(zhí)行,進程進入非阻塞的狀態(tài).
磁盤的I/O模型:
?????? 1 同步阻塞模型
?????? 2 異步非阻塞模型
進程讀取數(shù)據(jù)的過程:
MPM多路處理模塊: multipath process module
1 prefork 多路處理模塊 一個進程響應(yīng)一個請求,每一個進程的I/O模型是同步阻塞, 該模型穩(wěn)定性好.
2 worker? 多路處理模塊 一個進程創(chuàng)建多個線程來響應(yīng)多個用戶的請求,每個線程的I/O模型是同步阻塞,因此每一個線程只能響應(yīng)一個請求,該模型中的每一個線程可以共享進程的內(nèi)存中的資源,但是穩(wěn)定性沒有prefork好.
3 event?? 多路處理模塊 一個進程創(chuàng)建多個線程來響應(yīng)多個用戶的請求,每個線程的I/O模型是異步非阻塞,因此每一個線程可以響應(yīng)多個請求,該模型中每一個線程可以共享進程的內(nèi)存中資源,但是翁定性不如prefork 好.
配置:(httpd-2.4版本)
<IfModule mpm_prefork_module>
StartServers?? ??? ?表示啟動進程的時候啟動的工作進程的數(shù)目
MinSpaceServers?? ??? ?表示最小空間進程的數(shù)目
MaxSpaceServers?? ??? ?表示最大空間進程的數(shù)目
MaxRequestWorkers?? ?表示并發(fā)量的大小
MaxRequestsPerChild?? ?表示每個進程最大的服務(wù)次數(shù) 超過之后就銷毀 ?? ??? ??? ?? 0表示永久有效
</IfModule>
<IfModule mpm_worker_module>
StartServers?? ??? ?表示啟動進程的時候啟動的工作進程的數(shù)目
MinSpaceThreads?? ??? ?表示最小空閑線程的數(shù)目
MaxSpaceThreads?? ??? ?表示最大空閑線程的數(shù)目
ThreadsPerChild ?? ?每一個進程能夠創(chuàng)建的線程的數(shù)目
MaxRequestWorkers?? ?并發(fā)量
MaxRequestsPerChild ?? ?同上
</IfModule>
<IfModule mpm_event_module>
StartServers?? ??? ?表示啟動進程的時候啟動的工作進程的數(shù)目
MinSpaceThreads?? ??? ?表示最小空閑線程的數(shù)目
MaxSpaceThreads?? ??? ?表示最大空閑線程的數(shù)目
ThreadsPerChild ?? ?每一個進程能夠創(chuàng)建的線程的數(shù)目
MaxRequestWorkers?? ?并發(fā)量
MaxRequestsPerChild ?? ?同上
</IfModule>
總結(jié)
以上是生活随笔為你收集整理的Apache Web Server - httpd的HTTP的多路处理模块MPM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器存储系统技术方案,服务器存储技术方
- 下一篇: Apache Web Server -