麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 網(wǎng)站 > Apache > 正文

優(yōu)化Apache服務(wù)器性能的方法小結(jié)

2024-08-27 18:29:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

測(cè)試與提高性能

Apache服務(wù)器已經(jīng)被設(shè)計(jì)得盡可能的快,即使你用一臺(tái)配置不高的機(jī)器,用不著進(jìn)行太復(fù)雜的設(shè)置,它的響應(yīng)內(nèi)容就足以塞滿以前的各種窄帶連接。但隨網(wǎng)站內(nèi)容日益復(fù)雜和帶寬的增加,對(duì)Apache進(jìn)行優(yōu)化以取得更好的性能變得日益重要起來(lái)。

如果優(yōu)化的結(jié)果僅僅是極小的性能提升那真是浪費(fèi)時(shí)間。試想一下,你花了好幾個(gè)小時(shí)甚至幾天調(diào)整Apache的各種參數(shù)但結(jié)果僅是幾個(gè)百分點(diǎn)的性能提升?因此,在優(yōu)化前你做的第一步應(yīng)該是測(cè)試你目前的服務(wù)器的性能水平以便決定如何優(yōu)化你的服務(wù)器并衡量?jī)?yōu)化的效果。

關(guān)于對(duì)Apache的測(cè)試我們已經(jīng)不是第一次提到了(見(jiàn)《沖出水面》一文),如同我們以前提到的,確定到底是哪一部分導(dǎo)致的瓶頸往往是一件困難的事,是因?yàn)锳pache本身的設(shè)置問(wèn)題還是由于你使用的動(dòng)態(tài)網(wǎng)站程序環(huán)境?關(guān)于查找是否是因?yàn)榫W(wǎng)站程序引起的問(wèn)題已經(jīng)超出了本文的范圍,這里我們主要講一下提高 Apache服務(wù)器速度的一些通常做法以及它如何與構(gòu)成WEB網(wǎng)站的其它組件進(jìn)行交互。

主機(jī)硬件

Apache所在的機(jī)器與操作系統(tǒng)環(huán)境是對(duì)性能影響最大因素,很明顯,一以368的PC與一臺(tái)P4或雙處理器的機(jī)器不會(huì)有同樣的性能。不過(guò),如果不涉及硬件的改變,我們可以做的最大的事是首先看一下Apache是否運(yùn)行在一臺(tái)專用的服務(wù)器上,如果與其它應(yīng)用共用一臺(tái)服務(wù)器肯定會(huì)影響服務(wù)器的性能。

在大多數(shù)情況下,告別是對(duì)靜態(tài)網(wǎng)站而言,內(nèi)存數(shù)量是一個(gè)影響性能的關(guān)鍵因素,因?yàn)樗鼪Q定了Apache可以緩存多少內(nèi)容。它緩存的內(nèi)容越多,在硬盤上讀取內(nèi)容的機(jī)會(huì)就越少,而存取硬盤上的特定文件是一件很費(fèi)時(shí)的操作。如果你的網(wǎng)站主要是一些靜態(tài)內(nèi)容,你最好使用mod_cache選項(xiàng),如果你的內(nèi)存足夠大,可以使用mod_mem_cache選項(xiàng)。

第一個(gè)選項(xiàng)將信息緩存在磁盤上,當(dāng)它與mod_include選項(xiàng)一起使用時(shí)會(huì)有很好的效果,這個(gè)選項(xiàng)在建立一個(gè)頁(yè)面時(shí)在緩存中保存它的最終版本。使用mod_mem_cache將緩存內(nèi)容保存在一個(gè)可以被所有Apache進(jìn)程共享的內(nèi)存堆中。

使用更快的磁盤或進(jìn)一步使用RAID可以提高Apache對(duì)磁盤文件的訪問(wèn)速度。注意,如果你做了下面的所有這些優(yōu)化,一個(gè)硬件的(而非軟件)升級(jí)方案是更好的選擇。最后一個(gè)談到的關(guān)于硬件的問(wèn)題是CPU能力,這對(duì)動(dòng)態(tài)內(nèi)容網(wǎng)站的影響很大,動(dòng)態(tài)內(nèi)容越多要求越高。

通過(guò)擠出Apache服務(wù)器的每一分潛力你可以讓你的網(wǎng)站留給別人的印象大大改觀,特別是對(duì)一些動(dòng)態(tài)網(wǎng)站更是如何。這篇文章主要涉及到對(duì)Apache服務(wù)器的安裝和設(shè)置如何進(jìn)行優(yōu)化,這也是你最有控制權(quán)的部分。

測(cè)試與提高性能

Apache服務(wù)器已經(jīng)被設(shè)計(jì)得盡可能的快,即使你用一臺(tái)配置不高的機(jī)器,用不著進(jìn)行太復(fù)雜的設(shè)置,它的響應(yīng)內(nèi)容就足以塞滿以前的各種窄帶連接。但隨網(wǎng)站內(nèi)容日益復(fù)雜和帶寬的增加,對(duì)Apache進(jìn)行優(yōu)化以取得更好的性能變得日益重要起來(lái)。

如果優(yōu)化的結(jié)果僅僅是極小的性能提升那真是浪費(fèi)時(shí)間。試想一下,你花了好幾個(gè)小時(shí)甚至幾天調(diào)整Apache的各種參數(shù)但結(jié)果僅是幾個(gè)百分點(diǎn)的性能提升?因此,在優(yōu)化前你做的第一步應(yīng)該是測(cè)試你目前的服務(wù)器的性能水平以便決定如何優(yōu)化你的服務(wù)器并衡量?jī)?yōu)化的效果。

關(guān)于對(duì)Apache的測(cè)試我們已經(jīng)不是第一次提到了(見(jiàn)《沖出水面》一文),如同我們以前提到的,確定到底是哪一部分導(dǎo)致的瓶頸往往是一件困難的事,是因?yàn)锳pache本身的設(shè)置問(wèn)題還是由于你使用的動(dòng)態(tài)網(wǎng)站程序環(huán)境?關(guān)于查找是否是因?yàn)榫W(wǎng)站程序引起的問(wèn)題已經(jīng)超出了本文的范圍,這里我們主要講一下提高 Apache服務(wù)器速度的一些通常做法以及它如何與構(gòu)成WEB網(wǎng)站的其它組件進(jìn)行交互。

主機(jī)硬件

Apache所在的機(jī)器與操作系統(tǒng)環(huán)境是對(duì)性能影響最大因素,很明顯,一以368的PC與一臺(tái)P4或雙處理器的機(jī)器不會(huì)有同樣的性能。不過(guò),如果不涉及硬件的改變,我們可以做的最大的事是首先看一下Apache是否運(yùn)行在一臺(tái)專用的服務(wù)器上,如果與其它應(yīng)用共用一臺(tái)服務(wù)器肯定會(huì)影響服務(wù)器的性能。

在大多數(shù)情況下,告別是對(duì)靜態(tài)網(wǎng)站而言,內(nèi)存數(shù)量是一個(gè)影響性能的關(guān)鍵因素,因?yàn)樗鼪Q定了Apache可以緩存多少內(nèi)容。它緩存的內(nèi)容越多,在硬盤上讀取內(nèi)容的機(jī)會(huì)就越少,而存取硬盤上的特定文件是一件很費(fèi)時(shí)的操作。如果你的網(wǎng)站主要是一些靜態(tài)內(nèi)容,你最好使用mod_cache選項(xiàng),如果你的內(nèi)存足夠大,可以使用mod_mem_cache選項(xiàng)。

第一個(gè)選項(xiàng)將信息緩存在磁盤上,當(dāng)它與mod_include選項(xiàng)一起使用時(shí)會(huì)有很好的效果,這個(gè)選項(xiàng)在建立一個(gè)頁(yè)面時(shí)在緩存中保存它的最終版本。使用mod_mem_cache將緩存內(nèi)容保存在一個(gè)可以被所有Apache進(jìn)程共享的內(nèi)存堆中。

使用更快的磁盤或進(jìn)一步使用RAID可以提高Apache對(duì)磁盤文件的訪問(wèn)速度。注意,如果你做了下面的所有這些優(yōu)化,一個(gè)硬件的(而非軟件)升級(jí)方案是更好的選擇。最后一個(gè)談到的關(guān)于硬件的問(wèn)題是CPU能力,這對(duì)動(dòng)態(tài)內(nèi)容網(wǎng)站的影響很大,動(dòng)態(tài)內(nèi)容越多要求越高。

服務(wù)器設(shè)置


如果你的環(huán)境已經(jīng)建立Apache也已經(jīng)經(jīng)過(guò)優(yōu)化,就可以查看你的設(shè)置文件來(lái)進(jìn)行下一步的優(yōu)化措施。一個(gè)好的方法就是簡(jiǎn)化你的設(shè)置文件將文件中的指示(directives)減少到幾百行內(nèi),首先是刪除掉那些注釋行,進(jìn)而刪除任何非必要的內(nèi)容。

簡(jiǎn)化設(shè)置文件

第一步是簡(jiǎn)化設(shè)置設(shè)置文件,它并不帶來(lái)任何直接的性能提升,但它將使設(shè)置文件易于使用減少你出錯(cuò)的機(jī)會(huì)。

在進(jìn)行優(yōu)化之前,從一個(gè)默認(rèn)提供的設(shè)置文件開(kāi)始是一個(gè)不錯(cuò)的主意。這些文件常被放在Apache的設(shè)置目錄中,文件名為 httpd.conf.orig 或者 httpd-std.conf,不要使用如performance-std.conf類似名稱的文件,從長(zhǎng)遠(yuǎn)的觀點(diǎn)看,如果你準(zhǔn)備在里面加入大量的附加設(shè)置信息,它決不是一個(gè)好起點(diǎn)。另一方面,如果你的目標(biāo)是建立一個(gè)很快的靜態(tài)WEB服務(wù)器,這可能是讓服務(wù)器運(yùn)行起來(lái)的最簡(jiǎn)單方法。

如果你熟悉Apache的設(shè)置指示用法或樂(lè)意瀏覽幫助文件,你可以從設(shè)置文件中刪除所有的注釋內(nèi)容,因?yàn)樗鼈兘?jīng)常讓實(shí)際的指示內(nèi)容變得難找,你也可以刪除對(duì)當(dāng)前平臺(tái)上用不到的多處理機(jī)方式(MPM)的引用。

禁用模塊

現(xiàn)在,我們已經(jīng)得到了一個(gè)清爽的設(shè)置文件,下面我們可以開(kāi)始刪除其中我們系統(tǒng)用不到的元素,特別是:

●HostnameLookups(主機(jī)名查找),這增加了處理每個(gè)請(qǐng)求的開(kāi)銷,首先,服務(wù)器會(huì)對(duì)DNS系統(tǒng)做一個(gè)反向查詢以找出客戶系統(tǒng)的主機(jī)名,然后又進(jìn)行正向查詢看獲得的主機(jī)名是否真實(shí)指向客戶的IP。大多數(shù)情況下,你可以簡(jiǎn)單的關(guān)閉這個(gè)功能,如果你經(jīng)常處理服務(wù)器日志,這個(gè)工作完全可以在以后進(jìn)行。你可以通過(guò)在設(shè)置文件中加入指示HostnameLookups off來(lái)關(guān)閉這個(gè)功能。

●符號(hào)連接。當(dāng)打開(kāi)這個(gè)選項(xiàng)時(shí),Apache將檢查每個(gè)請(qǐng)求中是否包含對(duì)符號(hào)連接的引用,這將對(duì)請(qǐng)求中包含的每個(gè)路徑調(diào)用一次lstat()系統(tǒng)調(diào)用。除非你準(zhǔn)備使用符號(hào)連接,否則用 Options -FollowSymLinks 來(lái)關(guān)掉它。

●服務(wù)器狀態(tài)信息。盡管這對(duì)測(cè)試與監(jiān)控服務(wù)器很有用,但它也為服務(wù)器帶來(lái)了額外的開(kāi)銷,你可以通過(guò)尋找任何類似SetHandler server-status的指示來(lái)關(guān)閉,如果可能,你可以在安裝Apache時(shí)移除這個(gè)模塊。

●在可以更精確的時(shí)候盡可能不要使用通配符之類的靈活選項(xiàng),例如,對(duì)于DirectoryIndex指示,明確的指定設(shè)置文件列表,最常用的放在最前。

●除非你有很好的理由否則就允許CGI的執(zhí)行,將似有的CGI文件放到一個(gè)特定的目錄并為之設(shè)定正確的權(quán)限,這避免了Apache對(duì)每一個(gè)請(qǐng)求都要判斷一次要求的是一個(gè)靜態(tài)文件還是一個(gè)動(dòng)態(tài)文件。

禁用日志


寫入日志信息是一個(gè)很花費(fèi)時(shí)間的工作,盡管Apache保持日志文件的打開(kāi)狀態(tài)以節(jié)省打開(kāi)文件的時(shí)間,但仍然得花費(fèi)不少的時(shí)間。如果沒(méi)有必要存儲(chǔ)日志信息,你可以關(guān)閉這個(gè)選項(xiàng)以節(jié)省出更多的處理器時(shí)間,只需要在設(shè)置文件中把日志那一行注釋掉就可以關(guān)掉它。

如果必須保留日志,你可以關(guān)閉HostnameLookups選項(xiàng)(見(jiàn)上文)然后把日志文件拷備到另一臺(tái)機(jī)器上做進(jìn)一步分析。

簡(jiǎn)化目錄級(jí)的設(shè)置

htaccess文件可以極大的擴(kuò)展Apache的設(shè)置參數(shù),而無(wú)需每次你改變?cè)O(shè)計(jì)都要編輯Apache主設(shè)置文件,但對(duì)這個(gè)文件的使用也降低了服務(wù)器的性能。

如果使用這個(gè)文件,Apache必需首先在當(dāng)前目錄中查找是否存在這個(gè)文件,如果存在就解析這個(gè)文件并在當(dāng)前目錄中應(yīng)用文件中的設(shè)置。更壞的是,Apache不僅要查看當(dāng)前的目錄,還要查看當(dāng)前目錄的所有上層目錄是否包括htaccess文件以根據(jù)所有這些文件最終確定設(shè)置。

如果你想最優(yōu)化服務(wù)器的性能,你應(yīng)該禁止使用htaccess文件,任何基本目錄的設(shè)置都可以在主設(shè)置文件中進(jìn)行,而主設(shè)置文件僅在服務(wù)器啟動(dòng)時(shí)解析一次。為了禁用htaccess文件,在任何節(jié)里加上指示AllowOverride None。

多處理方式設(shè)置

多處理方式(Multi-Processing Module/MPM)他允許特定平臺(tái)處理多個(gè)并發(fā)連接。MPM模塊是平臺(tái)相關(guān)的,對(duì)于Unix、 Windows、BeOS、和NetWare有不同的解決方案,一些平臺(tái)有不止一個(gè)方案可以選擇。對(duì)大多數(shù)用戶而言,對(duì)于特定平臺(tái)的默認(rèn)設(shè)置已經(jīng)工作得很好,而精確調(diào)整這些參數(shù)是一個(gè)費(fèi)時(shí)的工作。不過(guò)如果你想最大限度的挖掘Apache的潛力,你必須調(diào)整這些設(shè)置。

對(duì)大多數(shù)平臺(tái)而言,只有一種MPM可選,不過(guò)在UNIX下則有兩個(gè)選項(xiàng):prefork與worker,prefork模式生成多個(gè)相同的 Apache 進(jìn)程,而worker模式創(chuàng)建多個(gè)線程。通常而言,對(duì)于只有一到兩顆處理器的系統(tǒng),prefork模式工作得更好,而對(duì)于擁有更多處理器的系統(tǒng),線程模型工作得更有效率。

不管哪種情況,MaxClients指示是最有效的提高服務(wù)器性能的方法,它控制了Apache可以處理的最大并發(fā)連接數(shù)。

優(yōu)化靜態(tài)內(nèi)容


如果你的WEB服務(wù)器使用了大量靜態(tài)內(nèi)容或者你分別用兩個(gè)WEB服務(wù)器處理動(dòng)態(tài)和靜態(tài)內(nèi)容,那么你現(xiàn)在的主要目標(biāo)就是縮短服務(wù)器發(fā)送被請(qǐng)求內(nèi)容的響應(yīng)時(shí)間,最簡(jiǎn)單的方法就是使用mod_cache緩存模塊。你可以使用mod_disk_cache和mod_mem_cache來(lái)分別提供基于磁盤的緩存和基于內(nèi)存的緩存。

你可以查看關(guān)于mod_cache的說(shuō)明文件以取得進(jìn)一步的信息。

優(yōu)化動(dòng)態(tài)內(nèi)容

動(dòng)態(tài)內(nèi)容可能是所有WEB服務(wù)器中最消費(fèi)時(shí)間的部分,特別是使用CGI的時(shí)候,一個(gè)簡(jiǎn)單的程序都可能會(huì)把響應(yīng)時(shí)間增加好幾秒。

使用基于腳本的方案的一大好處是它們?cè)贏pache里裝入了解釋器,這就減少了執(zhí)行時(shí)再裝入解釋器的時(shí)間,一些方案還把解析過(guò)的腳本緩存起來(lái),這樣下一次遇到同樣的請(qǐng)求就可以直接執(zhí)行而無(wú)需再次解析。

對(duì)特定系統(tǒng)的調(diào)整優(yōu)化很復(fù)雜而且很花時(shí)間,而且你需要調(diào)整特定的腳本以利用優(yōu)化的成果。

不過(guò)對(duì)動(dòng)態(tài)內(nèi)容的優(yōu)化效果是非常明顯的,僅僅是把perl腳本的執(zhí)行模式從CGI轉(zhuǎn)到mod_perl就可以減少多達(dá)70%的執(zhí)行時(shí)間,如果我們進(jìn)一步,還可以使用到數(shù)據(jù)庫(kù)的持久連接或在多次請(qǐng)求之間緩存信息,這對(duì)電子商務(wù)網(wǎng)站非常有用,它也減小了不同請(qǐng)求間重復(fù)裝載信息的開(kāi)銷。

總結(jié)

盡管Apache是一個(gè)高可定制的功能強(qiáng)大且相當(dāng)復(fù)雜的服務(wù)器軟件,我們很有興趣的注意到即使是Apache的標(biāo)準(zhǔn)安裝也可以得到不錯(cuò)的性能。調(diào)整 Apache的設(shè)置參數(shù)是一個(gè)可以輕易顯著提高服務(wù)器性能的方法。但不幸的是,常常我們?cè)贏pache里最無(wú)法控制的內(nèi)容--例如網(wǎng)站的動(dòng)態(tài)內(nèi)容腳本和 CGI是影響網(wǎng)站性能的最重要方面,如果你管理一個(gè)典型的Apache服務(wù)器你會(huì)發(fā)現(xiàn)Apache響應(yīng)一個(gè)傳入連接以及最后把內(nèi)容發(fā)送給客戶的所花費(fèi)的時(shí)間是以毫秒記的,而等待所需數(shù)據(jù)資源的時(shí)間常常達(dá)到幾秒鐘。

當(dāng)然,這并不是說(shuō)我們的優(yōu)化工作沒(méi)什么意義,優(yōu)化的效果日積月累也不可小視。另外,重要的是,通過(guò)簡(jiǎn)化你的設(shè)置文件,你可以大大減小服務(wù)器的管理負(fù)擔(dān)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品三级a三级三级午夜 | 男女羞羞在线观看 | 日本黄色免费观看视频 | 久久久久亚洲精品 | 911色_911色sss主站色播 | 日韩欧美高清片 | 91热久久免费频精品黑人99 | 国产一区二区三区高清 | 91精品动漫在线观看 | 国产精品久久久久久久久久 | 一级网站片 | 久久久一区二区三区四区 | 狠狠干b| 宅男噜噜噜66一区二区 | 色屁屁xxxxⅹ在线视频 | 免费毛片观看 | 欧美日韩精品中文字幕 | 依依成人精品视频 | 一级一级一级一级毛片 | 国产毛片毛片毛片 | 一区国产在线 | 粉嫩粉嫩一区二区三区在线播放 | 国产一级午夜 | 国产精品片一区二区三区 | 特级西西444www大精品视频免费看 | 亚洲男人的天堂在线视频 | 久久国产亚洲视频 | 日本在线视频二区 | 国产一级毛片高清视频完整版 | 麻豆19禁国产青草精品 | av日韩一区二区三区 | 鸳鸯谱在线观看高清 | 久久久久久久免费看 | 黄色av一区二区三区 | 中文字幕国产亚洲 | 91久久另类重口变态 | 国产精品午夜未成人免费观看 | 男人的天堂视频网站 | 欧美日韩在线播放一区 | 在线观看视频毛片 | 亚洲va久久久噜噜噜久牛牛影视 |