和上篇一樣,這些注冊表鍵值的修改還是需要和實際的網(wǎng)站的實際情況想對應(yīng)的,比如說這個站是動態(tài)的還是靜態(tài)的,每個頁面的文件有多大,站點的內(nèi)容是不是時時更新的等等。提升IIS性能要對癥下藥。
DisableMemoryCache
作用:禁用服務(wù)器緩存。要確保在所有產(chǎn)品服務(wù)器上將此參數(shù)設(shè)置為 0。如果將此參數(shù)設(shè)置為 1,那么就會禁用靜態(tài)文件緩存。盡管禁用緩存可能會對調(diào)試有用,但這樣做會嚴(yán)重降低產(chǎn)品服務(wù)器的性能。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWord
默認(rèn)值:0(已禁用)
范圍:0 - 1
MaxCachedFileSize
作用:確定可以放在緩存中的文件的最大大小。IIS 不緩存大于 MaxCachedFileSize 字節(jié)的文件。如果您正在運行專用的大型 Web 服務(wù)器,您可能需要將此值添加到注冊表中,以提高緩存中可以保存的文件大小。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWORD
默認(rèn)值:256 KB (262,144 bytes)
MemCacheSize
作用:指定 IIS 用來作為其文件緩存的內(nèi)存的最大量。如果 IIS 不需要這么多內(nèi)存,可以留給其他應(yīng)用程序使用。如果注冊表中沒有此值,IIS 用作緩存的量不超過 Web 服務(wù)器上可用內(nèi)存的一半(是每隔 60 秒動態(tài)地計算出來的)。如果您正在運行專用的大型 Web 服務(wù)器,您可能需要將此值添加到注冊表中,以提高 IIS 可以使用的內(nèi)存量。當(dāng)您將此對象添加到注冊表時,必須以兆字節(jié)為單位指定此大小。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWORD
默認(rèn)值:大約為可用物理內(nèi)存的一半,以兆字節(jié)為單位
范圍:0 - 2500MB
ObjectCacheTTL
作用:控制靜態(tài)文件緩存的生存時間 (TTL) 設(shè)置,該設(shè)置定義對象(包括文件)存放在緩存中的時間長短。如果內(nèi)存緩存中的對象在所定義的時段內(nèi)未被引用,則該對象將被清除出緩存。默認(rèn)情況下,此值未包括在注冊表中。如果您希望更改此默認(rèn)值,則必須手動添加。如果系統(tǒng)內(nèi)存有限,或者服務(wù)器內(nèi)容是動態(tài)的,您可以使用一個較低的 TTL 來防止系統(tǒng)內(nèi)存被用于緩存大量動態(tài)的對象。將值設(shè)置為 0xFFFFFFFF 將禁用對象緩存清理程序并允許緩存對象保留在緩存中,直到它們被覆蓋為止。如果服務(wù)器有足夠的系統(tǒng)內(nèi)存而且數(shù)據(jù)是相對穩(wěn)定的,則禁用緩存清理程序?qū)⒑苡杏谩F渌军c可以選擇折衷,將此值提高到幾分鐘。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWORD
默認(rèn)值:30(秒)
范圍:0 - 4,294,967,295(無限制)
PoolThreadLimit
作用:PoolThreadLimit 指定可以在 Inetinfo.exe 進(jìn)程中創(chuàng)建的 I/O 工作線程的最大數(shù)量,該設(shè)置將限制同時連接的數(shù)量。IIS 將 PoolThreadLimit 設(shè)置為計算機中當(dāng)前 RAM 的兆字節(jié)數(shù)量的兩倍。如果此值大于 256,則使用 256。如果注冊表中已經(jīng)有該值,那么它就會覆蓋 IIS 的計算值。每個池線程都監(jiān)視網(wǎng)絡(luò)請求并對其進(jìn)行處理,處理方法是,發(fā)回靜態(tài)文件或者將該請求傳遞到 ISAPI 擴展 DLL(如 asp)或傳遞到通用網(wǎng)關(guān)接口 (CGI)。如果 ISAPI 擴展同步對請求進(jìn)行處理,它將需要花很長時間來處理請求,而且會占用工作線程,這樣 IIS 處理其他請求的工作線程數(shù)會變少。因此,高質(zhì)量編碼的 ISAPI 擴展(如 ASP)實現(xiàn)它們自己的線程池,將請求放在隊列中,并使用其自己的線程異步對請求進(jìn)行處理,這樣就不會占用 IIS 工作線程了。一般來說,如果您發(fā)現(xiàn)默認(rèn)限度 256 個線程不夠,那么 ISAPI 擴展的編碼質(zhì)量可能較差,占用了 IIS 工作線程。
PoolThreadLimit 是包括所有 IIS 工作線程(包括 HTTP、FTP、NNTP 和 SMTP 服務(wù))的硬性限制。PoolThreadLimit 總是大于或等于 MaxPoolThreads。
ASP 線程池是單獨的一組線程。其大小受 AspPRocessorThreadMax 配置數(shù)據(jù)庫設(shè)置的控制。未處理的 ASP 請求的最大數(shù)量是 AspRequestQueueMax 和AspProcessorThreadMax 的總和。
PoolThreadLimit 是包含所有 IIS 線程的硬性限制,它始終大于或等于 MaxPoolThreads。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWORD
默認(rèn)值:2 * # MB
范圍:0 - 4,294,967,295(無限制)
MaxPoolThreads
作用:MaxPoolThreads 指定為每個處理器創(chuàng)建的 I/O 工作線程的數(shù)量。每個池線程都監(jiān)視網(wǎng)絡(luò)請求并對其進(jìn)行處理。MaxPoolThreads 計數(shù)不包括 ISAPI 應(yīng)用程序使用的線程;它只表示可用于處理靜態(tài)文件請求的工作線程數(shù)量。IIS 將按需要創(chuàng)建更多線程,以處理 ISAPI 請求。IIS 工作線程的總數(shù)不得大于 PoolThreadLimit。
默認(rèn)情況下,只能同時運行四個 CGI 應(yīng)用程序。如果運行多個 CGI 應(yīng)用程序,應(yīng)該增加該值以提高吞吐率。可以將 UsePoolThreadForCGI 的值(在 ../Services/W3SVC/Parameters 下)設(shè)置為 false(或 0),但這有點危險,因為在大量使用 CGI 應(yīng)用程序時性能會明顯降低。通常,每個處理器最好不要創(chuàng)建超過 20 個線程。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWORD
默認(rèn)值:4
范圍:0 - 4,294,967,295(無限制)
ListenBackLog
作用:指定在隊列中允許的等待服務(wù)器處理的活動連接的最大數(shù)量。通常沒有必要使用或修改此項,雖然在頻繁使用的情況下將此值最多提高到 300 會非常有益。
注冊表路徑:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/InetInfo/Parameters
數(shù)據(jù)類型:REG_DWORD
默認(rèn)值:15
范圍:1 - 250
新聞熱點
疑難解答
圖片精選