眾所周知,Apache是一個(gè)跨平臺(tái)的、采用模塊化設(shè)計(jì)的服務(wù)器。為了應(yīng)對(duì)不同的平臺(tái)和不同的環(huán)境產(chǎn)生的各種不同的需求,也為了在具體的平臺(tái)或環(huán)境下達(dá)到最佳的效果,Apache在web服務(wù)器的基礎(chǔ)功能方面(端口綁定、接收請(qǐng)求等)也同樣采用了模塊化設(shè)計(jì),這個(gè)Apache的核心模塊就叫做多路處理模塊(Multi-Processing
Module,簡(jiǎn)稱MPM)。
如果我們想要知道某個(gè)Apache內(nèi)部使用的是何種MPM模塊,我們可以以命令行的方式進(jìn)入Apache安裝目錄\bin,然后鍵入命令httpd
-l,即可查看到當(dāng)前Apache內(nèi)部使用的何種MPM模塊
1.啟用MPM模塊配置文件
在Apace安裝目錄/conf/extra目錄中有一個(gè)名為httpd-mpm.conf的配置文件。該文件主要用于進(jìn)行MPM模塊的相關(guān)配置。不過(guò),在默認(rèn)情況下,Apache的MPM模塊配置文件并沒(méi)有啟用。因此,我們需要在httpd.conf文件中啟用該配置文件,如下所示:
# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf (去掉該行前面的注釋符號(hào)"#")
2.修改MPM模塊配置文件中的相關(guān)配置
在啟動(dòng)MPM模塊配置文件后,我們就可以使用文本編輯器打開(kāi)該配置文件,我們可以看到,在該配置文件中有許多<IfModule>配置節(jié)點(diǎn),如下圖所示:
對(duì)應(yīng)的配置參數(shù)作用如下:
ThreadsPerChild每個(gè)子進(jìn)程的最大并發(fā)線程數(shù)。MaxRequestsPerChild每個(gè)子進(jìn)程允許處理的請(qǐng)求總數(shù)。如果累計(jì)處理的請(qǐng)求數(shù)超過(guò)該值,該子進(jìn)程將會(huì)結(jié)束(然后根據(jù)需要確定是否創(chuàng)建新的子進(jìn)程),該值設(shè)為0表示不限制請(qǐng)求總數(shù)(子進(jìn)程永不結(jié)束)。
該參數(shù)建議設(shè)為非零的值,可以帶來(lái)以下兩個(gè)好處:
-
可以防止程序中可能存在的內(nèi)存泄漏無(wú)限進(jìn)行下去,從而耗盡內(nèi)存。
-
給進(jìn)程一個(gè)有限壽命,從而有助于當(dāng)服務(wù)器負(fù)載減輕的時(shí)候減少活動(dòng)進(jìn)程的數(shù)量。
接著,我們?cè)賮?lái)看看mpm_perfork模塊和mpm_worker模塊下的默認(rèn)配置:
備注:ServerLimit表示Apache允許創(chuàng)建的最大進(jìn)程數(shù)。
值得注意的是,Apache在編譯時(shí)內(nèi)部有一個(gè)硬限制ServerLimit 20000(對(duì)于mpm_prefork模塊為ServerLimit
200000)。你不能超越這個(gè)限制。
使用這個(gè)指令時(shí)要特別當(dāng)心。如果將ServerLimit設(shè)置成一個(gè)高出實(shí)際需要許多的值,將會(huì)有過(guò)多的共享內(nèi)存被分配。如果將ServerLimit和MaxClients設(shè)置成超過(guò)系統(tǒng)的處理能力,Apache可能無(wú)法啟動(dòng),或者系統(tǒng)將變得不穩(wěn)定。
注意:在配置相關(guān)參數(shù)時(shí),請(qǐng)先保證服務(wù)器具備足夠的硬件性能(例如:CPU、內(nèi)存等)。
如果發(fā)現(xiàn)自啟動(dòng)后,隨著服務(wù)器的運(yùn)行時(shí)間增加,服務(wù)器的內(nèi)存占用也隨之增加,可能是程序中出現(xiàn)內(nèi)存泄露,請(qǐng)向下調(diào)整參數(shù)MaxRequestsPerChild的值以降低內(nèi)存泄露帶來(lái)的影響,然后盡快找出程序中的問(wèn)題之所在。
河南億恩科技股份有限公司(1tcdy.com)始創(chuàng)于2000年,專注服務(wù)器托管租用,是國(guó)家工信部認(rèn)定的綜合電信服務(wù)運(yùn)營(yíng)商。億恩為近五十萬(wàn)的用戶提供服務(wù)器托管、服務(wù)器租用、機(jī)柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶不斷的獲得更大的收益。
服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:
0371-60135900
虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:
0371-55621053
網(wǎng)絡(luò)版權(quán)侵權(quán)舉報(bào)電話:
0371-60135995
服務(wù)熱線:
0371-60135900