已手動新增並設定 IIS PoolThreadLimit 登錄值

[本主題的目的是要說明 Exchange Server Analyzer 工具所引出的特定問題。您只應將它套用到已執行過 Exchange Server Analyzer 工具且有遇到該特定問題的系統。Exchange Server Analyzer 工具可免費下載,它會從拓撲中的每台伺服器遠端收集組態資料,並自動分析該資料。產生的報告會詳述重要的組態問題、潛在問題及非預設的產品設定。遵循這些建議,您便能達到較佳的效能、延展性、可靠性及執行時間。如需此工具的相關資訊或是要下載最新版本,請參閱 Microsoft Exchange Analyzer (https://go.microsoft.com/fwlink/?linkid=34707)。]  

上次修改主題的時間: 2005-11-18

Microsoft® Exchange Server Analyzer 工具會讀取下列登錄項目,以判定是否已修改網際網路資訊服務 (IIS) 集區執行緒數目上限的預設值:

HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Inetinfo\Parameters\PoolThreadLimit

如果 Exchange Server Analyzer 發現 PoolThreadLimit 存在而且是設定為另一個值,就會顯示一則非預設的組態訊息。

PoolThreadLimit 登錄值指定可以在 Inetinfo.exe 處理程序中建立的輸入/輸出 (IO) 背景工作執行緒數目上限,此上限控制可與 IIS 建立同時連線的數目上限。每一個集區執行緒會監看是否有網路要求並處理該要求,處理的方式有傳回靜態檔案,或將該要求傳遞至 ISAPI 擴充程式 DLL (例如 ASP.DLL),或傳遞至「通用閘道介面 (CGI)」應用程式。如果 ISAPI 擴充程式同步處理某個要求而且處理要求的時間很久,該擴充程式將會佔用背景工作執行緒,只剩下少數幾個執行緒供 IIS 用來處理其他要求。因此,撰寫良好的 ISAPI 擴充程式 (如 ASP) 會執行自己的執行緒集區、將要求放入佇列中,然後使用自己的執行緒來同步處理要求,以免佔用 IIS 背景工作執行緒。

在預設的情況下,IIS 會將 PoolThreadLimit 設定為:

2 * 電腦中的 RAM MB 數

如果此值大於 256,它會被縮減為 256。在預設的情況下,此登錄值不存在。如果此值存在於登錄中,它會覆寫 IIS 的預設計算結果。

通常如果您發現預設的 256 個執行緒數限制不夠用時,可能是有撰寫不良的 ISAPI 擴充程式佔用了 IIS 背景工作執行緒。256 表示有很多執行緒同時在作用中,會給同步處理及內容切換帶來很大的負荷。

PoolThreadLimit 登錄值是包括所有 IIS 背景工作執行緒的硬性限制,這些執行緒包含 HTTP、FTP、NNTP 及 SMTP 服務。

important重要事項:
這篇文章包含和編輯登錄有關的資訊。在編輯登錄之前,請確定若發生問題時,您知道如何還原登錄。若需有關還原登錄的詳細資訊,請參考 Regedit.exe 或 Regedt32.exe 中的<還原登錄>說明主題。

若要還原為預設組態

  1. 開啟登錄編輯程式,例如 Regedit.exe 或 Regedt32.exe。

  2. 瀏覽至:HKLM\System\CurrentControlSet\Services\Inetinfo\Parameters

  3. 檢查、刪除或修改 PoolThreadLimit 值。

  4. 關閉登錄編輯程式,然後重新啟動 IIS Admin 服務,使變更生效。

編輯登錄之前,若需如何編輯登錄的相關資訊,請閱讀微軟知識庫文件<Microsoft Windows 登錄說明>(https://go.microsoft.com/fwlink/?LinkId=3052&kbid=256986)。