日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

FreeBSD下Apache2.0運(yùn)行模型分析及性能調(diào)整( 三 )


MaxSpareServers 設(shè)置了最大的空閑進(jìn)程數(shù),如果空閑進(jìn)程數(shù)大于這個(gè)值,Apache會(huì)自動(dòng)kill某些多余進(jìn)程 。這個(gè)值一般不要設(shè)的過(guò)大,但如果設(shè)的比MinSpareServers小,Apache會(huì)自動(dòng)把它調(diào)整為MinSpareServers 1 。如果站點(diǎn)負(fù)載較大的話(huà),可考慮同時(shí)加大MinSpareServers和MaxSpareServers 。
MaxRequestsPerChild設(shè)置的是每個(gè)子進(jìn)程可以處理的請(qǐng)求數(shù) 。每個(gè)子進(jìn)程在處理了MaxRequestsPerChild個(gè)請(qǐng)求后將自動(dòng)銷(xiāo)毀 。0意味著無(wú)限,即子進(jìn)程永不銷(xiāo)毀 。雖然缺省設(shè)為0可以使每個(gè)子進(jìn)程處理更多的請(qǐng)求,但如果設(shè)成非零值也有兩點(diǎn)重要的好處:
1. 可防止意外的內(nèi)存卸漏;
2. 在服務(wù)器負(fù)載下降的時(shí)侯會(huì)自動(dòng)減少子進(jìn)程數(shù) 。
因此,可根據(jù)服務(wù)器的負(fù)載來(lái)調(diào)整這個(gè)值,如果非零的話(huà),筆者認(rèn)為10000左右是比較合適的 。事實(shí)上這個(gè)值對(duì)Apache的性能影響不是很大 。
MaxClients 是這些指令中最為重要的一個(gè),它設(shè)定的就是Apache可以同時(shí)處理的請(qǐng)求,這是對(duì)Apache性能影響最大的參數(shù).在我個(gè)人看來(lái),缺省的150是遠(yuǎn)遠(yuǎn)不夠的,如果請(qǐng)求總數(shù)已達(dá)到這個(gè)值(可通過(guò)ps –ef|grep httpd|wc –l來(lái)確認(rèn)),那么下面的請(qǐng)求就要排隊(duì),直到某個(gè)已處理請(qǐng)求完畢 。這就是為什么系統(tǒng)資源還剩下很多,而http訪問(wèn)卻很慢的主要原因 。系統(tǒng)管理員可以根據(jù)硬件配置和負(fù)載情況來(lái)動(dòng)態(tài)調(diào)整這個(gè)值,雖然理論上這個(gè)值越大,可以處理的請(qǐng)求就越多,但Apache默認(rèn)的限制是不能大于256 。如果把這個(gè)值設(shè)為大于256那么Apache將無(wú)法起動(dòng) 。事實(shí)上,256對(duì)于負(fù)載稍重的站點(diǎn)也是很不夠的 。在Apache1.3中這是個(gè)硬限制,如果要加大這個(gè)值,必須在configure前手工修改源代碼樹(shù)下的src/include/httpd.h,查找256,會(huì)發(fā)現(xiàn)#define HARD_SERVER_LIMIT 256這行,把256改為你要增大的值如4000,然后重新編譯Apache即可 。我想這個(gè)方法稍有些經(jīng)驗(yàn)的Apache系統(tǒng)管理員都知道,不過(guò)我相信在Apache2.0中知道如何加大這個(gè)值的人就不會(huì)太多了 。
在Apache2.0中新加入了ServerLimit指令,使得無(wú)須重編譯Apache就可以加大MaxClients 。下面是筆者的prefork配置段 。
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
BTW: ServerLimit的最大值是20000,這對(duì)于大多數(shù)站點(diǎn)是足夠了,但如果你一定要再加大的話(huà),那么這個(gè)值位于源代碼樹(shù)下的server/mpm/prefork/prefork.c中 。里面的 #define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000 這兩行就對(duì)應(yīng)著MaxClients和ServerLimit的限制值 。但我相信很少有人可以用到20000的并發(fā)連接數(shù) 。
如果你有耐性看完了我這篇文檔,我相信您對(duì)Apache2.0 缺省的prefork的工作原理有所熟悉了,理解了它的工作過(guò)程后,就可以根據(jù)您的實(shí)際情況在FreeBSD下來(lái)配置Apache相關(guān)的核心參數(shù)以獲得最大的性能 。當(dāng)然---在Apache2.0中還有不少以功能換取速度的指令,如HostnameLookups等,這就不在本文的敘述范圍里了,有興趣的讀者可以去看Apache官方文檔,(還有別忘了用strip去掉httpd中的多余符號(hào),這點(diǎn)很容易被人遺忘,其實(shí)會(huì)使httpd大小大約減少30-50%!!從而使你的Apache更快!)另外如果您是Linux和Solaris系統(tǒng)管理員,想要使用worker MPM的話(huà),請(qǐng)參見(jiàn) http://httpd.apache.org/docs-2.0/mod/worker.html,還是老話(huà),多看看官方文檔吧 。

推薦閱讀