metabase.xml文件是iis的設(shè)置文件,每個(gè)網(wǎng)站已經(jīng)iis的設(shè)置都在這個(gè)下面,所以在修改這個(gè)文件之前要把這個(gè)文件備份一下。這個(gè)文件在c:\windows\system32\inetsrv\metabase.xml,前篇的啟用iis的靜態(tài)壓縮也可以在文件下設(shè)置,也可以在iis的圖形界面下設(shè)置。 對(duì)iis的性能優(yōu)化要對(duì)癥下藥,對(duì)不同的網(wǎng)站有不同的優(yōu)化方法,在分析你網(wǎng)站的特點(diǎn)的情況下,然后對(duì)metabase.xml文件里面的參數(shù)進(jìn)行調(diào)節(jié),提高iis的性能。 appallowdebugging 作用:指定在服務(wù)器上是否啟用 active server page (asp) 調(diào)試。在啟用此屬性的情況下,iis 應(yīng)用程序線程是序列化的;對(duì)于每個(gè)應(yīng)用程序,一次只允許執(zhí)行一個(gè)線程。序列化線程會(huì)對(duì) web 服務(wù)器性能產(chǎn)生負(fù)面影響。建議您在所有產(chǎn)品服務(wù)器上將此屬性設(shè)置為 false。 注意:當(dāng)允許進(jìn)行服務(wù)器端調(diào)試時(shí),將串行化 iis 應(yīng)用程序線程:對(duì)于每個(gè)應(yīng)用程序,同一時(shí)間只允許運(yùn)行一個(gè)線程。這會(huì)影響繁忙站點(diǎn)的服務(wù)器性能。
aspbufferingon 作用:該屬性指定 asp 應(yīng)用程序的輸出是否需要緩沖。如果將該值設(shè)置為 true,在緩沖區(qū)刷新到客戶端瀏覽器之前,應(yīng)用程序的所有輸出都集中到緩沖區(qū)里。啟用了緩沖,asp 應(yīng)用程序就必須在客戶端瀏覽器收到任何輸出前處理完所有的 asp 腳本。因此,啟用了緩沖的應(yīng)用程序比沒有啟用緩沖的似乎要慢一些,盡管啟用緩沖的腳本所用的總時(shí)間更少。所以,如果啟用了緩沖,那么請(qǐng)考慮使用 asp 內(nèi)置的 response 對(duì)象的 flush 方法在處理腳本的同時(shí)將內(nèi)容一份份的傳遞給用戶。 注意如果將該屬性設(shè)置為 false,那么 asp 腳本的輸出一旦可用就會(huì)輸出到客戶端瀏覽器。如果沒有啟用緩沖,那么所有修改現(xiàn)有的 http 頭或生成新頭的方法必須在內(nèi)容的主體傳送到客戶端瀏覽器之前執(zhí)行。如果啟用了緩沖,這個(gè)限制就沒有必要了。建議您在所有產(chǎn)品服務(wù)器上將此屬性設(shè)置為 true。 aspqueueconnectiontesttime 作用:iis 將所有的 asp 請(qǐng)求放置到隊(duì)列中。如果請(qǐng)求在隊(duì)列中等待的時(shí)間比 aspqueueconnectiontesttime 屬性指定的時(shí)間(以秒為單位)長(zhǎng),則 asp 將在執(zhí)行請(qǐng)求前檢查確定客戶端是否仍是連接的。如果客戶端已斷開連接,則不處理該請(qǐng)求并且從隊(duì)列中刪除該請(qǐng)求。 注意:多數(shù)情況下,用戶不會(huì)等待處理 asp 頁(yè)面超過幾秒的時(shí)間。雖然最長(zhǎng)等待時(shí)間隨用戶不同而不同,但通??山邮艿淖铋L(zhǎng)時(shí)間是大約 10 秒??梢允褂?aspqueueconnectiontesttime 屬性來(lái)確保 iis 不浪費(fèi)時(shí)間來(lái)處理已被用戶放棄的請(qǐng)求。當(dāng)處于 asp 將要開始處理腳本的狀態(tài)時(shí),該屬性對(duì)于使 asp 進(jìn)行有效處理非常有用。一旦腳本在運(yùn)行,應(yīng)用程序仍然應(yīng)該繼續(xù)使用 asp 內(nèi)置 response 對(duì)象的 isclientconnected 方法在合適的時(shí)候?qū)蛻舳诉B接進(jìn)行檢查。 asprequestqueuemax 作用:該屬性指定了允許進(jìn)入隊(duì)列的并發(fā) asp 請(qǐng)求的最大數(shù)目。在隊(duì)列占滿時(shí),任何試圖請(qǐng)求 asp 文件的客戶端瀏覽器都將收到 http 500"服務(wù)器太忙"的錯(cuò)誤。 注意:在 iiswebservice 級(jí)別上設(shè)置該屬性可運(yùn)用于所有級(jí)別上的所有進(jìn)程內(nèi)的和共用的進(jìn)程外應(yīng)用程序項(xiàng)。進(jìn)程內(nèi)的和共用的進(jìn)程外應(yīng)用程序忽略 iiswebserver 級(jí)別及更低級(jí)別上的配置數(shù)據(jù)庫(kù)設(shè)置。但是,如果該項(xiàng)是進(jìn)程外的隔離應(yīng)用程序,則使用 iiswebserver 級(jí)別或更低級(jí)別的設(shè)置。 aspscriptenginecachemax 作用:該屬性指定了 asp 頁(yè)面將在內(nèi)存中保持緩存的腳本引擎的最大數(shù)目。根據(jù)應(yīng)用程序中的內(nèi)容的類型調(diào)整默認(rèn)值。(默認(rèn)值不包括當(dāng)前正在運(yùn)行的腳本引擎)如果有成千上萬(wàn)的不同頁(yè),您會(huì)體驗(yàn)到提高緩存大小的一些好處:大多數(shù)頻繁請(qǐng)求的頁(yè)都可以輕松地訪問到。腳本引擎緩存的好處意味著您可以無(wú)需將模板重新編譯為字節(jié)代碼。 aspscriptfilecachesize 作用:該屬性指定了要緩存的預(yù)編譯腳本文件數(shù)。如果設(shè)置為 0,則不緩存任何腳本文件。如果設(shè)置為 4294967295,則緩存所有腳本文件。該屬性用于調(diào)整性能,依賴于可用內(nèi)存數(shù)和腳本文件傳輸量。 注意:配置數(shù)據(jù)庫(kù)將無(wú)窮大表示為 dword 值 4294967295 (0xffffffff);vbscript 則將無(wú)窮大表示為十六進(jìn)制值 &hffffffff。以前的 iis 版本將無(wú)窮大表示為 -1。 aspsessionmax 作用:屬性指定了 iis 允許的最大并發(fā)會(huì)話數(shù)。當(dāng)達(dá)到該限制時(shí),如果客戶端試圖與 iis 建立新連接,則客戶端將接收到錯(cuò)誤信息(http 500"服務(wù)器太忙")。 注意:配置數(shù)據(jù)庫(kù)將無(wú)窮大表示為 dword 值 4294967295 (0xffffffff);vbscript 則將無(wú)窮大表示為十六進(jìn)制值 &hffffffff。以前的 iis 版本將無(wú)窮大表示為 -1。asp 需要超過保留所有會(huì)話所需數(shù)量一定量的內(nèi)存。雖然可以使用 aspsessionmax 來(lái)限制該內(nèi)存超出,但是通常情況下使用aspsessiontimeout屬性來(lái)管理 iis 中會(huì)話對(duì)象的生存期會(huì)更合適,一旦達(dá)到限制將拒絕客戶端瀏覽器。 aspsessiontimeout 作用:屬性指定了完成最后的與 session 對(duì)象相關(guān)的請(qǐng)求后,保留該對(duì)象的時(shí)間(以分鐘為單位)??梢允褂?asp 內(nèi)置 session 對(duì)象的 timeout 屬性來(lái)在腳本中覆蓋該屬性。 注意:可以使用 aspsessiontimeout 來(lái)很好的調(diào)整 asp 應(yīng)用程序。由于 session 對(duì)象消耗內(nèi)存資源,因此使用該屬性來(lái)限制單個(gè) session 的生存期可以使應(yīng)用程序具有更好的可縮放性。 aspprocessorthreadmax 作用:該屬性指定 iis 可創(chuàng)建的每個(gè)處理器的最大工作線程數(shù)。(iis 所允許的每個(gè) asp 進(jìn)程的工作線程的最大數(shù)量是 aspprocessorthreadmax 乘以服務(wù)器上處理器的數(shù)量??梢越档痛酥等缓蟊O(jiān)視性能。如果性能降低,請(qǐng)恢復(fù) aspprocessorthreadmax 原來(lái)的值。) 注意:該設(shè)置通常會(huì)明顯地影響 web 應(yīng)用程序的可擴(kuò)展性和服務(wù)器的性能。因?yàn)樵搶傩远x了可同時(shí)執(zhí)行的 asp 請(qǐng)求的最大數(shù)量,所以除非 asp 應(yīng)用程序擴(kuò)展調(diào)用外部組件,該設(shè)置都將保持默認(rèn)值。在這種情況下,可以增加 aspprocessorthreadmax 的值。這樣做允許服務(wù)器創(chuàng)建更多的線程來(lái)處理更多的并發(fā)請(qǐng)求。如果更改了此屬性的值,則必須停止然后重新啟動(dòng) web 服務(wù)器實(shí)例以使更改生效。該屬性的萬(wàn)維網(wǎng)發(fā)布服務(wù) (www 服務(wù)) 設(shè)置在所有級(jí)別上適用于所有的進(jìn)程內(nèi)的和共用的進(jìn)程外應(yīng)用程序節(jié)點(diǎn)。對(duì)于進(jìn)程內(nèi)的和共用的進(jìn)程外應(yīng)用程序,忽略 web 服務(wù)器或更低級(jí)別上的配置數(shù)據(jù)庫(kù)設(shè)置。但是,如果該節(jié)點(diǎn)是進(jìn)程外的隔離應(yīng)用程序,則使用 web 服務(wù)器級(jí)別或更低級(jí)別的設(shè)置。 asptrackthreadingmodel 作用:該屬性指定了 iis 是否檢查應(yīng)用程序創(chuàng)建的任意組件的線程模塊。 注意:該配置數(shù)據(jù)庫(kù)屬性通常最好保留默認(rèn)值 (false),以便 asp 不使用系統(tǒng)資源來(lái)跟蹤線程模塊,asp 應(yīng)用程序提供最好的性能。如果將該屬性設(shè)置成 false,并且允許所創(chuàng)建的組件訪問應(yīng)用程序的作用域,則這些組件必須聚合自由線程封送拆收器。如果不聚合自由線程封送拆收器,則當(dāng)創(chuàng)建組件實(shí)例時(shí) asp 將生成錯(cuò)誤。有關(guān)該主題的詳細(xì)信息,請(qǐng)參閱 platform sdk 中的"建造 asp 組件"。將該屬性設(shè)為默認(rèn)值 (false) 的另一個(gè)原因是,任意在 asp 應(yīng)用程序中創(chuàng)建的沒有 onstartpage 或 onendpage 方法的對(duì)象都比其他的要發(fā)布的早并且會(huì)降低應(yīng)用程序的可縮放性能。 cacheisapi 作用:該屬性指示在第一次使用 isapi 擴(kuò)展后是否在內(nèi)存中進(jìn)行緩存。如果將該屬性的值設(shè)置為 true,則 isapi 擴(kuò)展一旦載入將一直駐留在緩存中,直到服務(wù)器停止工作。如果將該屬性的值設(shè)置為 false,則若不再使用 isapi 擴(kuò)展,就將其從內(nèi)存中卸載。是否對(duì) isapi 擴(kuò)展進(jìn)行緩存,取決于將其載入內(nèi)存使用時(shí)該屬性的值。因此,如果在擴(kuò)展已載入并進(jìn)行緩存后更改屬性,則只有在重新啟動(dòng) web 服務(wù)器后,所做更改才會(huì)對(duì)擴(kuò)展生效。 注意:將該屬性設(shè)置為 false 可能引起嚴(yán)重的性能問題。而且當(dāng)屬性設(shè)置為 false 時(shí),某些擴(kuò)展無(wú)法正常運(yùn)行。
|