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