已手動新增 SMTP FileCacheMaxHandles 登錄值,但可能不再需要此值

[本主題的目的是要說明 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) 檔案快取控制代碼數的預設值 800:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters\FileCacheMaxHandles

如果 Exchange Server Analyzer 發現 FileCacheMaxHandles 存在且已設為 800 以外的任一值,則會顯示非預設的組態訊息。

FileCacheMaxHandles 值指定 Exchange 每 32 MB 之實體記憶體所使用的最大 IIS 檔案控制代碼數目。將檔案控制代碼快取以提高效能,因為快取的檔案控制代碼讓伺服器不必執行多餘的輸入/輸出 (I/O) 及 CPU 週期。每次 Exchange Server 電腦上的 SMTP 傳輸堆疊收到郵件時,都會將它串流到檔案系統中,它會在此檔案系統上等待被路由傳送到其目的地。若要寫入檔案系統,SMTP 傳輸堆疊會取得檔案控制代碼,然後將郵件傳送給該控制代碼。每一個檔案控制代碼消耗大約 2 KB 的分頁集區記憶體。IIS 快取檔案控制代碼的預設數目是每 32 MB 有 800 個。

在 Exchange 2000 Server 的 Service Pack 2 (SP2) 之前,因為 SMTP 服務的最大檔案控制代碼數之預設值為 1,000,所以之前也發生過支援大型 SMTP 訊息佇列 (例如,平均 1,000 封或以上的郵件) 效能條件約束的 Exchange 伺服器。因為 Exchange 2000 Server 預設為最多 1000 個檔案控制代碼,所以 SMTP 服務只能將 1000 封同時傳入的郵件寫入檔案系統。

為了增進這些大型系統的效能,需要經常同時調整三個登錄項目,以增加 SMTP 服務可開啟的最大檔案控制代碼數目 (這樣才能處理更多的郵件),以及減少可安裝檔案系統 (另一個 Exchange 元件) 的開啟檔案控制代碼數目 (來避免在佇列變大時,發生記憶體不足)。下面列出這些登錄值 (預設是不存在,因此需要手動新增它們):

位置:HKLM\System\CurrentControlSet\Services\SMTPSVC\Queuing

值:MsgHandleThreshold

類型:REG_DWORD

位置:HKLM\System\CurrentControlSet\Services\SMTPSVC\Queuing

值:MsgHandleAsyncThreshold

類型:REG_DWORD

位置:HKLM\System\CurrentControlSet\Services\Inetinfo\Parameters

值:FileCacheMaxHandles

類型:REG_DWORD

MsgHandleThresholdMsgHandleAsyncThreshold 項目一般會調整為相同的值 (通常是大於 1000 的值),而 FileCacheMaxHandles 值通常會從 800 減少為 600。

預設是沒有此登錄值,因為 Exchange 2000 Server Service Pack 2 (SP2) 和更新版本會動態決定要使用的最佳值。如果此 Exchange 伺服器執行的是 Exchange 2000 Server Service Pack 1 或更早的版本,則建議最佳作法是升級成最新層級的 Service Pack 及彙總套件。升級成最新程式碼後,便能刪除這些登錄項目。

由於 Exchange Server 2003 會動態計算 SMTP 檔控制代碼的適當設定,所以不再需要這些設定。因此,在將含有這些設定的 Exchange 2000 Server 電腦升級到 Exchange Server 2003 之前,您應該從登錄中刪除這些項目。

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

若要更正此錯誤

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

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

  3. 刪除 FileCacheMaxHandles 值。

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

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