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