Apache 性能優化


有一個升級服務器,這幾天一直訪問的比較慢。導致部分用戶升級不了。看了一下服務器的負載,發現

CPU和內存占用的都不是很高,可能是Apache配置不當造成的,一番搜索,找到了MPM的配置,提速很明顯哦 !

 

Apache 的 MPM(Multi -Processing Modules,多道處理模塊),經過適當的配置,可以提高服務器的負載能力。

不過,Linux和Windows版本的Apache ,MPM不盡相同,感覺Linux更強大些,可以同時開好幾個進程進行Apache的響應。

我機子上的是Wamp環境,在httpd.conf中有這樣一段:

# Server-pool management (MPM specific)
# Include conf/extra/httpd-mpm.conf


注釋掉,在httpd-mpm.conf中,會出現好幾種類型的配置,要根據自己的具體環境配置相應的文件。

通過  httpd -l 可以,查看自己的Apache部署的是哪個模塊。

D:\wamp\bin\apache\Apache2.2.21\bin\httpd -l
Complied in modules:
core.c
mod_win32.c
mpm_winnt.c
http_core.c
mod_so.c


看到里面有mpm_winnt.c ,我們就在httpd-mpm.conf的<IfModule mpm_winnt_module>進行配置

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


其中,ThreadsPerChild 是指一個進程最多擁有的線程數(Windows版本,貌似不可以開啟多個進程),一般100-500就可以,

根據服務器的具體性能來決定。MaxRequestsPerChild,是指一個線程最多可以接受的連接數,默認是0,就是不限制的意思,

但是網上有文章說,0會導致內存泄露。所以,可以根據實際情況,配置一個比較大的值。我估計Apache會在幾個線程之間進

行輪詢,找到負載最輕的一個線程來接受新的連接。

 

另附: Apache 官方MPM說明http://httpd.apache.org/docs/2.2/zh-cn/mpm.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM