国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

Apache 網(wǎng)站速度更快

2019-11-02 16:29:40
字體:
供稿:網(wǎng)友
1.3,2.0版本做了大量的優(yōu)化來提升處理能力和可伸縮性,并且大多數(shù)改進在默認狀態(tài)下即可生效.但是在編譯和運行時刻,2.0也有許多可以顯著提高性能的選擇.

MPM(Multi -Processing Modules,多道處理模塊)是Apache2.0中影響性能的最核心特性.

毫不夸張地說,MPM的引入是Apache 2.0最重要的變化.大家知道,Apache是基于模塊化的設計,而Apache

2.0更擴展了模塊化設計到Web服務器的最基本功能.服務器裝載了一種多道處理模塊,負責綁定本機網(wǎng)絡端口、接受請求,并調(diào)度子進程來處理請求.擴展模塊化設計有兩個重要好處:

  ◆ Apache可以更簡潔、有效地支持多種操作系統(tǒng);

  ◆ 服務器可以按站點的特殊需要進行自定制.

在用戶級,MPM看起來和其它Apache模塊非常類似.主要區(qū)別是在任意時刻只能有一種MPM被裝載到服務器中.

下面以Linux RedHat AS3為平臺,演示一下在Apache 2.0中如何指定MPM.

# wget http://archive.apache.org/dist/httpd/httpd-2.0.52.tar.bz2

# tar jxvf httpd-2.0.52.tar.bz2

# cd httpd-2.0.52

# ./configure ――help|grep mpm

顯示如下: ――with-mpm=MPM Choose the process model for Apache to use.

MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}

上述操作用來選擇要使用的進程模型,即哪種MPM模塊.Beos、mpmt_os2分別是BeOS和OS/2上缺省的MPM,

perchild主要設計目的是以不同的用戶和組的身份來運行不同的子進程.這在運行多個需要CGI的虛擬主機時特別有用,會比1.3版中的SuExec

機制做得更好.leader和threadpool都是基于worker的變體,還處于實驗性階段,某些情況下并不會按照預期設想的那樣工作,所以

Apache官方也并不推薦使用.因此,我們主要闡述prefork和worker這兩種和性能關(guān)系最大的產(chǎn)品級MPM.

prefork的工作原理

如果不用“――with-mpm”顯式指定某種MPM,prefork就是Unix平臺上缺省的MPM.它所采用的預派生子進程方式也是

Apache

1.3中采用的模式.prefork本身并沒有使用到線程,2.0版使用它是為了與1.3版保持兼容性;另一方面,prefork用單獨的子進程來處理不同的請求,進程之間是彼此獨立的,這也使其成為最穩(wěn)定的MPM之一.

prefork的工作原理是,控制進程在最初建立“StartServers”個子進程后,為了滿足MinSpareServers設置的需要創(chuàng)建一個進程,等待一秒鐘,繼續(xù)創(chuàng)建兩個,再等待一秒鐘,繼續(xù)創(chuàng)建四個……如此按指數(shù)級增加創(chuàng)建的進程數(shù),最多達到每秒32個,直到滿足

MinSpareServers設置的值為止.這就是預派生(prefork)的由來.這種模式可以不必在請求到來時再產(chǎn)生新的進程,從而減小了系統(tǒng)開銷以增加性能.

worker的工作原理

相對于prefork,worker是2.0

版中全新的支持多線程和多進程混合模型的MPM.由于使用線程來處理,所以可以處理相對海量的請求,而系統(tǒng)資源的開銷要小于基于進程的服務器.但是,

worker也使用了多進程,每個進程又生成多個線程,以獲得基于進程服務器的穩(wěn)定性.這種MPM的工作方式將是Apache 2.0的發(fā)展趨勢.

worker的工作原理是,由主控制進程生成“StartServers”個子進程,每個子進程中包含固定的ThreadsPerChild

線程數(shù),各個線程獨立地處理請求.同樣,為了不在請求到來時再生成線程,MinSpareThreads和MaxSpareThreads設置了最少和最多的空閑線程數(shù);而MaxClients設置了所有子進程中的線程總數(shù).如果現(xiàn)有子進程中的線程總數(shù)不能滿足負載,控制進程將派生新的子進程.

# 下面我以worker模式進行編譯安裝

# ./configure--prefix=/usr/local/apache

--with-mpm=worker--enable-so(讓它支持DSO功能,這樣以后可以動態(tài)加載模塊)

# make
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 连云港市| 宁德市| 泸溪县| 高清| 邳州市| 黄浦区| 临夏县| 宝鸡市| 江西省| 陈巴尔虎旗| 忻城县| 大化| 冕宁县| 黄陵县| 旬邑县| 福建省| 全椒县| 饶河县| 汽车| 鹤庆县| 舞钢市| 昌黎县| 新宁县| 锡林浩特市| 鱼台县| 灵石县| 恩施市| 板桥市| 池州市| 兴义市| 思南县| 潞西市| 桑植县| 柳林县| 仪征市| 郎溪县| 商丘市| 镇坪县| 崇义县| 牟定县| 海伦市|