已手動設定 SMTP AdditionalPoolThreadsPerProc 登錄值

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

上次修改主題的時間: 2007-01-17

Microsoft® Exchange Server Analyzer 工具會讀取下列登錄項目,以判定是否有手動設定其他集區執行緒:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SMTPSvc\Parameters\AdditionalPoolThreadsPerProc

如果 Exchange Server Analyzer 發現 AdditionalPoolThreadsPerProc 已存在且已設定,則會顯示非預設的組態訊息。

在 SMTP 中有五個工作佇列是使用稱為 ATQ 執行緒的執行緒集區。根據設計,其中兩個佇列預設可以使用最多 90% 的可用執行緒。此執行緒集區是由接受 POP 及 IMAP 要求的處理程序所共用。因此,在中度到高度負載狀況下會發生 SMTP 防止 POP 及 IMAP 服務使用資源的情況。

您可以限制 SMTP 可使用的執行緒百分比,來保留足夠的執行緒數目供 POP 及 IMAP 使用。若要執行此變更,請增加可供 IIS 使用的整體執行緒數目。其唯一代價就是增加其他執行緒的記憶體使用量。

有兩個登錄值可讓您控制每個處理器的執行緒與其他執行緒的 SMTP 百分比:

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

值:AdditionalPoolThreadsPerProc

類型:REG_DWORD

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

值:MaxPercentPoolThreads

類型:REG_DWORD

如果高度 SMTP 活動造成 POP3 或 IMAP4 失敗或這兩個資源都失敗,您應該在叢集 Exchange Server 電腦上調整這兩個登錄值。您可以使用下列公式來計算叢集的最佳值:

登錄值 公式

AdditionalPoolThreadsPerProc

((9 / (MaxPercentPoolThreads/100)) – 4) / 2

MaxPercentPoolThreads

90 / (2 * 通訊協定虛擬伺服器數目)

例如,在有兩個通訊協定虛擬伺服器的 Exchange Server 叢集中,MaxPercentPoolThreads 的公式為 90 / (2*2) = 22。計算 MaxPercentPoolThreads 值時,如果計算結果為包含小數點的值,您應該將結果無條件捨去為整數。當計算 AdditionalPoolThreadsPerProc 值的時候, 如果計算結果會產生大於 200 的值,那麼您也需要將結果值指派給另一個登錄值:

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

值:PoolThreadLimit

類型:REG_DWORD

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

若要在 Exchange 叢集上設定最佳設定值

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

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

  3. 建立名為 AdditionalPoolThreadsPerProc 的 DWORD 登錄值,然後根據上面的公式將其值資料設定成適當數字。

  4. 建立名為 MaxPercentPoolThreads 的 DWORD 登錄值,然後根據上面的公式將其值資料設定成適當數字。

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

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

若需這份文件所描述的特定叢集資源問題之詳細資訊,請參閱微軟知識庫文件 - 281868<XADM:POP\IMAP4 虛擬伺服器在高負載下一再失敗>(英文) (https://go.microsoft.com/fwlink/?linkid=3052&kbid=281868)。