Apache 2.X 支持插入式并行處理(lǐ)模塊,稱為(wèi)多路(lù)處理(lǐ)模塊(MPM)。在編譯apache時(shí)必須選擇也(yě)隻能(néng)選擇一(yī)個(gè)MPM,對類UNIX系統,有幾個(gè)不同的MPM可供選擇,它們會影響到apache的速度和可伸縮性。
主要有兩種:Prefork和worker
通過 /usr/local/apache/bin/apachectl -l 命令來(lái)查看
看顯示的模塊中是否包含上(shàng)面兩種關(guān)鍵字,那就(jiù)是編譯的時(shí)候使用了(le)那種方式。每個(gè)子(zǐ)進程隻有一(yī)個(gè)線程。每個(gè)進程在某個(gè)确定的時(shí)間(jiān)隻能(néng)維持一(yī)個(gè)連接。在大多數平台上(shàng),Prefork MPM在效率上(shàng)要比Worker MPM要高,但(dàn)是内存使用大得多。prefork的無線程設計在某些(xiē)情況下(xià)将比worker更有優勢:它可以使用那些(xiē)沒有處理(lǐ)好(hǎo)(hǎo)線程安全的第三方模塊。
這(zhè)裏主要講prefork方式。
在apache的httpd.conf文件中打開包含httpd-mpm.conf
編輯httpd-mpm.conf
找到
<IfModule mpm_prefork_module>
ServerLimit 2000
StartServers 5 //服務(wù)器(qì)進程開始數量
MinSpareServers 25 //最小服務(wù)器(qì)進程數量
MaxSpareServers 50 //最大服務(wù)器(qì)進程數量
MaxClients 2000 //最大客戶端
MaxRequestsPerChild 102400 //最大請求進程數
</IfModule>