首頁 > php教程 > PHP开发 > Apache的效能最佳化(三)

Apache的效能最佳化(三)

黄舟
發布: 2016-12-21 11:25:00
原創
1055 人瀏覽過

下面討論以下預設沒有安裝的幾個重要的模組。 。 (除了prefork)

常用的模組:

最常用的可能就是php和JAVA應用伺服器的前端,我們目前應用不需要。此外,從效能上講利用mod_gzip可以減少40%左右的流量,減少機器用於傳輸的負載,建議使用。我們使用的檔案比較小,可以看看壓縮演算法的時間開銷和 傳輸的負載的減少是不是合算。 而 mod_expires可以減少10%左右的重複請求,讓重複的使用者對指定的頁面請求結果都CACHE在本地,根本不向伺服器發出請求。但是我們使用的是記憶體檔案系統,關於cache的最佳化可以完全不考慮。

基於反相代理的WEB加速:

squid和mod_proxy都可以實現反相代理加速。而基於快取的代理加速比起原有WEB服務,速度會有數量級的提升。同樣記憶體檔案系統不需要。

 

影響效能的關鍵指標MPM:

MPM(Multi-Processing Modules,多道處理模組)。 MPM看起來和其它Apache模組非常類似。與其他類型模組不同的是,Apache必須有一個且只有一個MPM處在運作中。 。 指定MPM的方法

$ ./configure --help|grep mpm

顯示如下:

--with-mpm=MPM

Choose the process model for Apache to use.

Choose the process model for Apache to use.

Choose the process model for Apache to use.

prefork|mpmt_os2| perchild|leader|threadpool}

Beos、mpmt_os2分別是BeOS和OS/2上缺省的MPM,perchild主要設計目的是以不同的使用者和群組的身份來運行不同的子進程。這在執行多個需要CGI的虛擬主機時特別有用,會比1.3版中的SuExec機製做得更好。 leader和threadpool都是基於worker的變體,還處於實驗性階段,某些情況下並不會按照預期設想的那樣工作,所以Apache官方也並不推薦使用。因此,我們主要闡述prefork和worker這兩種和效能關係最大的產品級MPM 。

 

如果不用「--with-mpm」明確指定某種MPM,prefork就是Unix平台上缺省的MPM。

prefork本身並沒有使用到線程,2.0版使用它是為了與1.3版保持兼容性;prefork用單獨的子進程來處理不同的請求,進程之間是彼此獨立的,這也使其成為最穩定的MPM之一。

prefork的工作原理是,控制進程在最初建立「StartServers」個子進程後,為了滿足MinSpareServers設定的需要創建一個進程,等待一秒鐘,繼續創建兩個,再等待一秒鐘,繼續創建四個……如此以指數級增加所建立的進程數,最多達到每秒32個,直到滿足MinSpareServers設定的值為止。這就是預派生(prefork)的由來。這種模式可以不必在請求到來時再產生新的進程,從而減少了系統開銷以增加效能。

 以上就是Apache的效能最佳化(三)的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜🎜🎜🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板