欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解apahce的工作模式perfork、worker

 更新時(shí)間:2013年06月12日 22:44:24   作者:  
本文介紹下,apache的兩種工作模式perfork與worker,就它們的區(qū)別進(jìn)行深入分析,供大家學(xué)習(xí)參考
prefork模式使用多個(gè)子進(jìn)程,每個(gè)子進(jìn)程只有一個(gè)線程。每個(gè)進(jìn)程在某個(gè)確定的時(shí)間只能維持一個(gè)連接。在大多數(shù)平臺(tái)上,Prefork MPM在效率上要比Worker MPM要高,但是內(nèi)存使用大得多。prefork的無(wú)線程設(shè)計(jì)在某些情況下將比worker更有優(yōu)勢(shì):它可以使用那些沒(méi)有處理好線程安全的第三方模塊,并 且對(duì)于那些線程調(diào)試?yán)щy的平臺(tái)而言,它也更容易調(diào)試一些。

worker模式使用多個(gè)子進(jìn)程,每個(gè)子進(jìn)程有多個(gè)線程。每個(gè)線程在某個(gè)確定的時(shí)間只能維持一個(gè)連接。通常來(lái)說(shuō),在一個(gè)高流量的HTTP服務(wù)器 上,Worker MPM是個(gè)比較好的選擇,因?yàn)閃orker MPM的內(nèi)存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一個(gè)線程崩潰,整個(gè)進(jìn)程就會(huì)連同其所有線程一起”死掉”.由于線程共享內(nèi)存空間,所以一個(gè)程序在運(yùn)行時(shí)必須被系統(tǒng)識(shí)別為”每 個(gè)線程都是安全的”。

prefork方式速度要稍高于worker,然而它需要的cpu和memory資源也稍多于woker。

查看現(xiàn)使用的工作模式:
apachectl -l

兩種模式配置文件+說(shuō)明:
perfork模式:

復(fù)制代碼 代碼如下:

<IfModule mpm_prefork_module>
ServerLimit 2000
#連接數(shù)大于256需設(shè)置此項(xiàng)。20000是ServerLimit這個(gè)參數(shù)的最大值
StartServers 5
#初始化時(shí)建立的子進(jìn)程數(shù)。prefork默認(rèn)為5
MinSpareServers 10
#最小的空閑進(jìn)程數(shù)
MaxSpareServers 15
#最大的空閑進(jìn)程數(shù)
MaxClients 1000
#最大并發(fā)客戶端連接數(shù)上限
MaxRequestsPerChild 10000
#控制服務(wù)器殺死舊進(jìn)程產(chǎn)生新進(jìn)程的頻率
#將MaxRequestsPerChild設(shè)置成非零值有兩個(gè)好處:
#1.可以防止(偶然的)內(nèi)存泄漏無(wú)限進(jìn)行,從而耗盡內(nèi)存。
#2.給進(jìn)程一個(gè)有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時(shí)候減少活動(dòng)進(jìn)程的數(shù)量。
</IfModule>


worker模式:

復(fù)制代碼 代碼如下:

<IfModule mpm_worker_module>
StartServers 3
#初始化時(shí)建立的子進(jìn)程數(shù)
MaxClients 2000
#最大并行處理數(shù)量。子進(jìn)程最大數(shù)量=MaxClients/ThreadsPerChild
ServerLimit 25
#只有在你需要將MaxClients和ThreadsPerChild設(shè)置成需要超過(guò)默認(rèn)值16個(gè)子進(jìn)程的時(shí)候才需要使用這個(gè)指令。不要將該指令的值設(shè)置的比MaxClients 和ThreadsPerChild需要的子進(jìn)程數(shù)量高。
MinSpareThreads 50
#最少空線程數(shù)
MaxSpareThreads 200
#最大空閑線程數(shù)
ThreadLimit 200
#這個(gè)指令設(shè)置了每個(gè)子進(jìn)程可配置的線程數(shù)ThreadsPerChild上限,該指令的值應(yīng)當(dāng)和ThreadsPerChild可能達(dá)到的最大值保持一致。
ThreadsPerChild 100
#子進(jìn)程建立的服務(wù)線程數(shù)
MaxRequestsPerChild 0
#設(shè)置每個(gè)子進(jìn)程在其生存期內(nèi)允許伺服的最大請(qǐng)求數(shù)量。到達(dá)MaxRequestsPerChild的限制后,子進(jìn)程將會(huì)結(jié)束。如果MaxRequestsPerChild為"0",子進(jìn)程將永遠(yuǎn)不會(huì)結(jié)束。
</IfModule>


工作模式修改方法:
重新編譯指定工作模式(默認(rèn)為prefork)

復(fù)制代碼 代碼如下:

./configure --with-mpm=worker


注意:
對(duì)工作模式相關(guān)參數(shù)做出更改后,必須關(guān)閉apache服務(wù)后重新啟動(dòng)服務(wù)方可。
直接利用restart啟動(dòng)將是無(wú)效的。

相關(guān)文章

最新評(píng)論