Windows下Apache模塊配置 mpm_winnt_module
Windows系統(tǒng)下Apache的運行模塊一般為winnt,是專門針對Windows NT優(yōu)化的MPM(多路處理模塊),它使用一個單獨的父進程產(chǎn)生一個單獨的子進程,在這個子進程中輪流產(chǎn)生多個線程來處理請求。也就是說 mpm_winnt只能啟動父子兩個進程, 不能像Linux下那樣同時啟動多個進程。
其中它的Apache模塊配置為 mpm_winnt_module 文件,默認配置參數(shù)如下圖所示:
ThreadsPerChild:constant number of worker threads in the server process。線程數(shù)量。一般來說線程數(shù)量越大,能夠更好的處理更多并發(fā)連接。
MaxConnectionsPerChild:maximum number of connections a server process serves。累計最多處理到多少個請求,超過該值會自動重啟Apache。設置為0,則不限制。
MaxMemFree:MaxMemFree指令用于設置主內(nèi)存分配程序在未調(diào)用free()的情況下允許持有的最大自由內(nèi)存數(shù)量(KB)。若未設置或設置為"0",將表示無限制。 MaxMemFree的默認值為2048。一般不需要配置。
實際設置中可以根據(jù)apache-status查看apache實時連接狀態(tài),查看其中線程占用數(shù)目情況來進行相應的調(diào)整。
將MaxRequestsPerChild設置成非零值有兩個好處:
a)可以防止(偶然的)內(nèi)存泄漏無限進行,從而耗盡內(nèi)存。
b)給進程一個有限壽命,從而有助于當服務器負載減輕的時候減少活動進程的數(shù)量。
注意:對于KeepAlive鏈接,只有第一個請求會被計數(shù)。事實上,它改變了每個子進程限制最大鏈接數(shù)量的行為。