您可以調整 iis metabase 內容及注冊表設置來調整 web 服務器的性能。如果打算改變注冊表,則除非沒有其它方法可用,否則請勿使用注冊表編輯器。注冊表編輯器會忽略系統管理工具提供的標準安全設置。這些安全設置可防止您輸入沖突的設置值,或可能降低性能或損害系統的設置值。直接編輯注冊表會導致嚴重且難以預計的后果,會導致系統無法啟動,而必須重新安裝 windows 2000。使用 adsutil 公用程序 (可在 inetpub\adminscripts 目錄中找到) 來改變 iis 也會發生同樣的狀況。若要設置或定制 windows 2000 及 iis 5.0,請盡量使用 [控制面板] 或 microsoft management console (mmc)。
metabase 設置
這份清單包括用來調整 web 服務器最重要的 metabse 設置。使用 adsi 接口可以獲取及改變它們。這些設置大多會在重新啟動 web 服務之后才生效。相關信息,請參閱說明 iisreset 公用程序的小節。
appallowdebugging-這個屬性會指定服務器上是否啟用了 asp 偵錯。如果啟用,則iis 應用程序線程將序列化,這表示每個應用程序一次只能執行一條線程。這會對 web 服務器的性能產生不利的影響。您可以在所有生產服務器上將這個屬性設為 false (默認)。
aspallowsessionstate-默認值是 true。將它調整為 false 可產生更高的性能。一旦改變后,開發人員必須明確地在需要使用「有效期」對象的頁面上置換這個設置。若要改變單一頁面上的默認設置,開發人員可以使用頁面頂端的。若要改變這個選項,請務必通知開發人員。
aspbufferingon-默認值是 true。這個屬性的默認行為是允許所有來自應用程序的輸出在緩沖區被轉存到客戶端瀏覽器之前,先收集在緩沖區中。如果這個屬性被設置為 false,則來自 asp 腳本文件的輸出會在客戶端使用瀏覽器時,寫入該客戶端瀏覽器。您必須確定這個屬性在所有生產環境 web 服務器上都設置為 true。詳細信息,請參閱本文中的〈調整及疑難排除的建議〉小節。
aspthreadgateenabled (默認值是 false) 及 aspprocessorthreadmax (默認值是 25)- 當您將 aspthreadgateenabled 設為 true 時,便會啟用線程傳送,而且 iis 5.0 會動態地改變工作線程的數目,以響應改變的工作量。iis 允許每一個 asp 進程擁有的最大工作線程數目是 aspprocessorthreadmax乘以您服務器上的 cpu 數目。請調低此值,并監視性能。如果性能降低,請調回 aspprocessorthreadmax 值。相關信息,請參閱本文中的〈線程傳送〉小節。
asprequestqueuemax-在 iis 5.0 中,隊列中的默認請求限制已增加到 3,000個。這個設置的作用會根據應用程序的行為而定。如果請求的執行時間很短,而且在隊列中的時間將很短,則增加此限制是合理的作法。
aspqueueconnectiontesttime-這是 iis 5.0 的新設置,對于 web 應用程序的性能幫助很大。在 iis 4.0 中,一個請求是當它從隊列中刪除時無條件地開始執行。在 iis 5.0 中,如果有個請求在隊列中存留的時間超過隊列連接測試時間,則服務器在開始執行之前,會先檢查該客戶端是否仍在連接中。這個功能可以處理不耐久候的用戶在同一頁上多次嘗試而用滿請求隊列的問題。默認值是 3 秒。根據您的服務器正在執行的 web 服務器類型,決定是否改變這個值。執行時間很長的 asp 頁也會使用 response.isclientconnected 方法來檢查客戶端是否仍在等待頁面的剩余部份。執行時間很長的頁面應謹慎地使用 response.flush,以確定用戶能知道該頁仍在執行中,而且正在執行生產性的工作!疙憫箤ο蠓椒ǖ南嚓P信息,請參閱 iis 5.0 聯機文檔。
aspsessionmax 及 aspsessiontimeout-其默認行為是將單一有效期的長度限制為 20 分鐘,而不限制并行有效期的數目。在利用有效期的應用程序上縮小「有效期等候超時」以減少服務器所需的負擔時要特別小心,但是如果并行有效期增加到難以處理的比例,就會產生增加「有效期最大值」的需要。
aspscriptenginecachemax-在內存中緩存的腳本文件引擎之最大數目的新默認值是 125。這不包含目前執行的腳本文件引擎。請根據應用程序中的內容類型調整此值。如果有幾千個不同的頁面,則增加緩存大小可能會有些效果,因為最常請求的網頁可以隨時供人存取。存取腳本文件引擎可以免去將模板重新編譯為字節程序代碼。
在設置這個 metabase 屬性之前,您應了解 asp 使用「asp script engine cache」及「asp template cache」的方法。進一步討論,請參閱〈附錄 3:asp 緩存〉。
aspscriptfilecachesize-這個屬性會指定要存放在「asp template cache」中預先編譯的腳本文件個數。如果是 0,則不會有任何腳本文件可緩存。若是 -1,則所有請求的腳本文件都會被緩存。默認值是 250 個。如果您有許多不同的 asp 頁,請增加此值。請勿將此屬性的值設為 0。這會關閉所有 asp 緩存,并嚴重地損害服務器的性能。
asptrackthreadingmodel-這個 metabase 屬性會指定 iis 是否將檢查您的應用程序瞬間產生之任一組件的線程處理模式。如果讓這個 metabase 屬性保持它的默認值 (false),則可避免由于追蹤 asp 的線程處理模式所造成的負擔,而您可以在您的 asp 應用程序中看見性能的提升。不過,如果這個屬性是設為 false,則您打算設置「應用程序」范圍而建立的任何組件,必須聚集為不用線程處理的 marsaller。如果沒有聚集 marshaller,則當您嘗試瞬間產生該組件時,asp 就會產生錯誤。此外,如果這個屬性是 false,則缺少 onstartpage 或 onendpage 方法且瞬間在您 asp 應用程序中產生的所有對象,會在該釋放的時間前釋放。這應該可以提高應用程序的可擴展性。這個屬性在 iis 4.0 中的默認值是 true。相關信息,請參閱 iis 5.0 聯機文檔。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/