Windows下Apache模塊配置 mpm_winnt_module

Windows下Apache模塊配置 mpm_winnt_module。來自xwamp。

Windows下Apache的運行模塊一般爲winnt,是專門針對Windows NT優化的MPM(多路處理模塊),它使用一個單獨的父進程產生一個單獨的子進程,在這個子進程中輪流產生多個線程來處理請求。也就是說 mpm_winnt只能啓動父子兩個進程, 不能像Linux下那樣同時啓動多個進程。以下爲默認配置:

<IfModule mpm_winnt_module>
    ThreadsPerChild        150
    MaxConnectionsPerChild   0
</IfModule>

  • ThreadsPerChild:constant number of worker threads in the server process。線程數量。一般來說線程數量越大,能夠更好的處理更多併發連接。

  • MaxConnectionsPerChild:maximum number of connections a server process serves。累計最多處理到多少個請求,超過該值會自動重啓Apache。設置爲0,則不限制,但是有可能會照成內存泄漏。

  • MaxMemFree:MaxMemFree指令用於設置主內存分配程序在未調用free()的情況下允許持有的最大自由內存數量(KB)。若未設置或設置爲"0",將表示無限制。 MaxMemFree的默認值爲2048。一般不需要配置。

可能的錯誤

Apache出現以下日誌:

指定的網絡名不再可用。  : winnt_accept: Asynchronous AcceptEx failed.

需要加上配置:

Win32DisableAcceptEx 

AcceptEx()是一個微軟的WinSock2 API ,通過使用BSD風格的accept() API提供了性能改善。一些流行的Windows產品,比如防病毒軟件或虛擬專用網絡軟件,會干擾AcceptEx()的正確操作。如果你遇到類似於如下 的錯誤:一般的解決辦法是關閉 AcceptEx()。

建議不要安裝一些服務器安全軟件(主要是國產的)。反正我是不安裝,我的所有服務器從來沒有出現過上面的錯誤。

一些總結

  • 如果性能沒有問題的話,就使用這個默認的配置。

  • 如果想設置MaxConnectionsPerChild大於0的話,可以設置爲ThreadsPerChild的100倍,不要設置的太小。如何判斷是否太小?查看Apache的錯誤日誌,計算一下Apache重啓的時間間隔,儘量不要低於1個小時(根據個人喜好,頻繁重啓Apache一般來說不太好)。
發佈了39 篇原創文章 · 獲贊 9 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章