瞭解用戶端節流原則
適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3
上次修改主題的時間: 2015-03-09
MicrosoftExchange Server 2010 使用用戶端節流原則來管理 Exchange 組織的效能。若要這樣做,Exchange 會追蹤每個使用者消耗的資源,並視需要強制執行連線頻寬限制。
而在其他方面,用戶端節流可協助您確認:
使用者並非刻意消耗大量的系統資源。
使用者刻意消耗大量的系統資源。
使用者的各種連線方法是按比例共用資源。
在 Exchange Server 2010 SP1 中,預設會開啟所有用戶端節流原則。如果碰到可能是由這些原則導致的問題,您可以關閉用戶端節流。若要關閉用戶端節流,您可以將所有原則參數設定為 $Null
。
目錄
預設和非預設原則
了解原則參數
Exchange 管理命令介面命令及參數
常見的節流原則管理工作
節流效能計數器
後援原則
預設和非預設原則
在建立 Exchange 組織時,會自動建立預設的節流原則,以透過隱含方式管理組織內的所有使用者。雖然預設的用戶端節流原則通常已足夠用來管理 Exchange 系統上的負載,您仍可以自訂預設原則,或根據組織的需求新增額外的原則。
如果您在 Exchange 組織中主控多個用戶,則可以為用戶的每位使用者定義可接受的負載。同樣地,如果您位於內部部署的組織,則可以依照使用者對使用者的方式定義可接受的負載。透過這些原則,Exchange 會評估每位使用者使用系統的方式,以確保每位使用者的負載處於使用者原則所定義的可接受範圍內。用戶端節流系統會追蹤每位使用者的系統使用量,並使用與該使用者相關聯的節流原則來判斷是否應進行節流。
Exchange 2010 Enterprise 安裝中還有稱為「預設組織」的單一預設節流原則。在多用戶部署中,每個用戶都有自己的預設節流原則。
後援原則
節流框架的設計是為了保護 Exchange 資源。因此,如果非預設原則損壞或遺失,節流原則會先回復為組織的預設節流原則。不過,如果預設原則損壞或遺失,則節流原則會回復為「後援原則」。由於後援原則內嵌於 Exchange 中,因此不太可能失敗。
後援原則也會套用至驗證的帳戶,例如電腦帳戶、跨樹系連絡人,以及沒有信箱的 Active Directory 帳戶。這些帳戶會使後援原則值受到指派。由於這些帳戶使用後援原則,因此無法修改原則值。
後援原則會使用下列值:
存取類型 |
MaxConcurrency |
PercentTimeinAD |
PercentTimeinCAS |
PercentTimeinRPC |
其他 |
Anonymous |
1 |
$null |
$null |
$null |
|
EAS |
10 |
$null |
$null |
$null |
10 (maxDevices) |
EWS |
10 |
50 |
90 |
60 |
5000 (maxSubscription) |
IMAP |
$null |
$null |
$null |
$null |
|
OWA |
5 |
30 |
150 |
150 |
|
POP |
20 |
$null |
$null |
$null |
|
PowerShell |
18 |
$null (maxTenantConcurrency) |
|||
RCA |
2000 |
5 |
205 |
200 |
|
CPA |
20 |
205 |
200 |
||
一般 |
$null (MessageRateLimit) |
預設和非預設原則
了解原則參數
您可以使用 Get-ThrottlingPolicy、Set-ThrottlingPolicy、New-ThrottlingPolicy 和 Remove-ThrottlingPolicy 指令程式,並透過 Exchange 管理命令介面來管理節流原則設定。
節流原則的可接受負載是由該節流原則上的指令程式參數值所定義。節流原則所涵蓋的元件類型如下:
MicrosoftExchange ActiveSync
Exchange Web 服務
IMAP
Outlook Web App
POP
Windows PowerShell
除了 Windows PowerShell 元件類型以外,這些元件類型的原則參數運作方式都很類似。
常見的元件類型是由四個原則參數所規範:<Component Acronym>MaxConcurrency、<Component Acronym>PercentTimeInAD、<Component Acronym>PercentTimeInCAS 和 -<Component Acronym>PercentTimeInMailboxRPC。參數名稱前面會加上元件類型縮略字。下表列出節流原則指令程式中各參數所使用的元件類型縮略字。
節流原則指令程式中所使用的元件類型縮略字
元件縮略字 | 描述 | 範例 |
---|---|---|
EAS |
Exchange ActiveSync |
在參數 EASPercentTimeInCAS 中,元件縮略字 EAS 代表 Exchange ActiveSync 元件。 |
EWS |
Exchange Web 服務 |
在參數 EWSPercentTimeInCAS 中,元件縮略字 EWS 代表 Exchange Web 服務元件。 |
OWA |
Outlook Web App |
在參數 OWAPercentTimeInCAS 中,元件縮略字 OWA 代表 Outlook Web App 元件。 |
IMAP |
IMAP4 |
在參數 IMAPPercentTimeInCAS 中,元件縮略字 IMAP 代表 IMAP4 元件。 |
POP |
POP3 |
在參數 POPPercentTimeInCAS 中,元件縮略字 POP 代表 POP3 元件。 |
![]() |
---|
整合通訊使用者會被視為 Exchange Web 服務使用者,因此 Exchange 伺服器的連線會由 Exchange Web 服務參數 (如 EWSMaxConcurrency、EWSPercentTimeInAD、EWSPercentTimeInCAS 和 EWSPercentTimeInMailboxRPC) 進行節流。 |
預設和非預設原則
MaxConcurrency
MaxConcurrency 原則參數的值,表示指定的使用者一次可以對一台 Exchange 伺服器擁有多少個並行連線。連線會自收到要求起開始保留,直到已傳送完整回應給要求者為止。如果使用者嘗試提出的並行要求數目超過其原則所允許的數目,則新的連線嘗試會失敗。不過,現有的連線仍然有效。<Component Acronym>MaxConcurrency 的有效值為 0 到 2147483647 (含)。若要指出 <Component Acronym>MaxConcurrency 應該取消節流 (不限制),此值應設為 $null
。
![]() |
---|
除非有業務上的需要,否則請勿將節流原則參數設為 $null 。無論是刻意或出自意外,取消節流的使用者都可以在伺服器上配置較高的負載。 |
PercentTimeInCAS、PercentTimeInAD 和 PercentTimeInMailboxRPC
PercentTimeInCAS、PercentTimeInAD 或 PercentTimeInMailboxRPC 原則參數的值,會指定可以花費的分鐘百分比:
執行 Client Access Server 程式碼 (<Component Acronym>PercentTimeInCAS)
執行 LDAP 要求 (<Component Acronym>PercentTimeInAD)
執行信箱 RPC 要求 (<Component Acronym>PercentTimeInMailboxRPC)
值 100 表示,在每個一分鐘的視窗中,程序可以將整整 60 秒花費在耗用有問題的資源。雖然程序不太可能達到設為 100 的節流值,您仍必須考量並行要求的效果。如果程序進行兩個並行要求,其在 Client Access Server 上的每個執行中程式碼各花費 60 秒,因此這個程序實際上會在 60 秒的時間中使用 120 秒,這代表了 200% 的 <Component Acronym>PercentTimeInCAS 值。
若要指出 PercentTimeInCAS、PercentTimeInAD 和 PercentTimeInMailboxRPC 應該取消節流 (不限制),此值應設為 $null
。
![]() |
---|
除非有業務上的需要,否則請勿將節流原則參數設為 $null 。無論是刻意或出自意外,使用者都可以在伺服器上配置較高的負載。 |
值得注意的是,<Component Acronym>PercentTimeInCAS 為 <Component Acronym>PercentTimeInAD 和 <Component Acronym>PercentTimeInMailboxRPC 的重疊超集。這表示 Client Access Server 處理時間會永遠大於 <Component Acronym>PercentTimeInAD 和 <Component Acronym>PercentTimeInMailboxRPC。這是因為當 Exchange 元件進行 Active Directory 或 RPC 呼叫時,它必須執行 Client Access Server 程式碼。此外,在進行 LDAP 或 RPC 呼叫時,<Component Acronym>PercentTimeInCAS 的處理時間並不會停止。即使要求可能會同步等待 Active Directory 或 Exchange 存放區的回應,此程序仍會耗用伺服器上的執行緒,因此應繼續計入該使用量。因此,<Component Acronym>PercentTimeInCAS 值必須設為大於 <Component Acronym>PercentTimeInAD 值和 <Component Acronym>PercentTimeInMailboxRPC 值的值。
預設和非預設原則
Exchange 管理命令介面命令及參數
本節將討論下列 Windows PowerShell 參數:
PowerShellMaxConcurrency
PowerShellMaxCmdlets
PowerShellMaxCmdletsTimePeriod
PowerShellMaxCmdletQueueDepth
PowerShellMaxConcurrency
在遠端命令介面內容中,PowerShellMaxConcurrency 參數會定義遠端命令介面使用者可以同時開啟的遠端命令介面工作階段數目上限。在 Web 服務內容中,PowerShellMaxConcurrency 參數會定義使用者可以同時執行的並行指令程式數目。這個值不一定與使用者開啟的瀏覽器數目相符。
PowerShellMaxCmdlets
PowerShellMaxCmdlets 參數會定義每個期間不需進行節流所執行的指令程式數目。這個參數直接由 PowerShellMaxCmdletsTimePeriod 參數定義的值所決定。這兩個值應同時設定。
PowerShellMaxCmdletsTimePeriod
PowerShellMaxCmdletsTimePeriod 參數會定義使用者在執行 PowerShellMaxCmdlets 參數所定義的指令程式數目時花費的時間 (以秒為單位)。
PowerShellMaxCmdletQueueDepth
PowerShellMaxCmdletQueueDepth 參數會定義使用者可同時執行的作業數目。此值會直接影響 PowerShellMaxCmdlets 和 PowerShellMaxConcurrency 參數的行為。例如,PowerShellMaxConcurrency 參數將會耗盡至少兩個由 PowerShellMaxCmdletQueueDepth 參數所定義的作業,但每次執行指令程式時仍會依照節流限制計算其他作業。根據節流限制所計算的作業數取決於執行的指令程式。建議 PowerShellMaxCmdletQueueDepth 參數的值至少是 PowerShellMaxConcurrency 參數的三倍。此參數不會影響使用 Exchange [控制台] 所執行的作業,或是透過 Exchange Web 服務所執行的作業。
預設和非預設原則
管理用戶端節流原則
Exchange 管理命令介面可讓您使用下表中所述的指令程式,修改及檢視用戶端節流原則設定。
在 Client Access Server 上管理用戶端節流原則時使用的指令程式
指令程式名稱 | 描述 |
---|---|
New-ThrottlingPolicy |
此指令程式會建立新的節流原則。 |
Remove-ThrottlingPolicy |
此指令程式會移除節流原則。 |
Get-ThrottlingPolicy |
此指令程式可讓您檢視節流原則的設定。 |
Set-ThrottlingPolicy |
此指令程式會修改節流原則的所有可用設定。 |
若要檢視這些指令程式的語法和參數,請參閱 New-ThrottlingPolicy、Remove-ThrottlingPolicy、Get-ThrottlingPolicy 和 Set-ThrottlingPolicy。
您可以將節流原則與特定物件關聯。此物件可以是有信箱的使用者、沒有信箱的使用者、連絡人或電腦帳戶。如需這些指令程式的語法和參數的相關資訊,請參閱 Get-ThrottlingPolicyAssociation 和 Set-ThrottlingPolicyAssociation。
![]() |
---|
若要使節流原則與單一使用者或使用者群組產生關聯,請將 ThrottlingPolicy 參數與 New-Mailbox 和 Set-Mailbox 指令程式搭配使用。 |
根據每位使用者管理用戶端節流原則設定
您可以在 Exchange 管理命令介面中使用 Set-Mailbox 和 New-Mailbox 指令程式的 ThrottlingPolicy 參數,藉由修改信箱屬性來產生用戶端節流原則與使用者或使用者群組的關聯。如需詳細資訊,請參閱Set-Mailbox及New-Mailbox。
預設和非預設原則
常見的節流原則管理工作
以下是一些您可以管理用戶端節流原則的方法。
擷取預設節流原則
根據預設,用戶端節流原則的 IsDefault 參數會設為 true。您可以使用 where-object
篩選器擷取預設節流原則。下列範例顯示如何擷取預設節流原則。
Get-ThrottlingPolicy | where-object {$_.IsDefault -eq $true}
擷取管理使用者的節流原則
您可以根據每位使用者來設定節流原則。因此,您可能需要擷取可管理特定使用者的原則。您可以從感興趣的使用者信箱取得 ThrottlingPolicy
參數,並將它傳送至 Get-ThrottlingPolicy 指令程式。下列範例中,使用名為 Tony Smith 的使用者信箱。
$policy = $null;
$policyLink = (Get-Mailbox tonysmith).ThrottlingPolicy;
if ($policyLink -eq $null)
{
$policy = Get-ThrottlingPolicy | ? {$_.IsDefault};
}
else
{
$policy = $policyLink | Get-ThrottlingPolicy;
}
預設和非預設原則
建立新的非預設節流原則
若要建立新的非預設節流原則,請執行 New-ThrottlingPolicy 指令程式,並設定所需的參數。您省略的任何參數都會繼承預設節流原則的值。下列範例會建立新的節流原則 ClientThrottlingPolicy2
。新的原則與預設節流原則的設定幾乎完全相同。兩者的差異是,新的非預設節流原則 ClientThrottlingPolicy2
會將 EWSPercentTimeInCAS
設為 80,並關閉 EWSPercentTimeInAD
節流。
New-ThrottlingPolicy -Name ClientThrottlingPolicy2 -EWSPercentTimeInCAS 80 -EWSPercentTimeInAD $null;
將非預設節流原則指派給使用者
若要將非預設節流原則指派給使用者,請使用 Set-Mailbox 指令程式,如下所示。
$b = Get-ThrottlingPolicy ClientThrottlingPolicy2;
Set-Mailbox -Identity tonysmith -ThrottlingPolicy $b;
如果使用者是由非預設節流原則所管理,且您想讓使用者使用預設原則,可能會考慮將 ThrottlingPolicy 參數設為 $null
以進行此變更。不過,將 ThrottlingPolicy 參數設為 $null
並不會修改信箱物件。若要將預設節流原則套用至使用者,您必須使用下列命令明確設定該使用者的預設節流原則。
$policy = Get-ThrottlingPolicy | where-object {$_.IsDefault -eq $true};
Set-Mailbox -Identity tonysmith -ThrottlingPolicy $policy;
預設和非預設原則
尋找由特定節流原則管理的所有使用者
如果您想知道哪些使用者是由特定節流原則所管理,請執行 Get-Mailbox 指令程式,並篩選節流原則識別碼,如下列範例所示。在這個範例中,$policy
會是您正在篩選的原則。
Get-Mailbox | where-object {$_.ThrottlingPolicy -eq $policy.Identity}
移除節流原則
您可以只移除非預設的節流原則,以及並未與任何信箱產生關聯的節流原則。若要執行這項操作,請執行 Remove-ThrottlingPolicy 指令程式,並使用下列命令傳送節流原則的識別碼。
Remove-ThrottlingPolicy ClientThrottlingPolicy2
如果您的節流原則與使用者有關聯,則必須先將這些使用者重新指派給其他原則,然後才可以移除要移除的原則。下列範例顯示如何執行這項操作。
$policy = Get-ThrottlingPolicy ClientThrottlingPolicy2;
$mailboxes = Get-Mailbox | where-object {$_.ThrottlingPolicy -eq $policy.Identity};
$defaultPolicy = Get-ThrottlingPolicy | where-object {$_.IsDefault -eq $true};
foreach ($mailbox in $mailboxes)
{
Set-Mailbox -Identity $mailbox.Identity -ThrottlingPolicy $defaultPolicy;
}
Remove-ThrottlingPolicy ClientThrottlingPolicy2;
預設和非預設原則
修改節流原則
您可以執行 Set-ThrottlingPolicy 指令程式並指定要變更的參數,以修改現有的節流原則 (包括預設節流原則)。例如,若要將預設節流原則的 EWSMaxConcurrency 參數值變更為 4,您可能需要使用下列命令。
$a = Get-ThrottlingPolicy | where-object {$_.IsDefault -eq $true}
$a | Set-ThrottlingPolicy -EWSMaxConcurrency 4
節流效能計數器
由於節流功能可協助您在 Exchange 伺服器上管理 Exchange 元件的整體使用量,因此檢查節流如何影響系統通常會很有用。Exchange 可為各程序提供一組節流效能計數器。如 Exchange 等的 Outlook Web App 程序,將會有自己的計數器組,例如 Exchange Web 服務就會有自己的計數器組。在 Windows 效能工具中,這些計數器統稱為執行個體。
啟用 RPC 用戶端存取記錄檔中的節流記錄
根據預設,RPC 用戶端存取服務的節流記錄是停用的。因此,您不會在 PRC 用戶端存取記錄檔中看見節流資訊。若要啟用節流記錄功能,請遵循下列步驟:
使用文字編輯器 (例如記事本) 開啟以下檔案:C:\Program Files\Microsoft\Exchange Server\V14\Bin Microsoft.Exchange.RpcClientAccess.Service.exe.config
在檔案中找到 <add key="LoggingTag" value="ConnectDisconnect, Logon, Failures, ApplicationData, Warnings" /> 區段。
輸入 Throttling 逗號分隔字串。例如,輸入與下列類似的 Throttling 字串:<add key="LoggingTag" value="ConnectDisconnect, Logon, Failures, ApplicationData, Warnings, Throttling" />。
儲存並關閉檔案。
重新啟動 RPC 用戶端存取服務。
預設和非預設原則
© 2010 Microsoft Corporation. 著作權所有,並保留一切權利。