了解客户端限制策略
适用于: 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 企业版安装中有一个单独的默认限制策略,称为“第一个组织”。在多租户部署中,每个租户都有自己的默认限制策略。
回退策略
限制框架旨在保护 Exchange 资源。因此,如果非默认策略已损坏或丢失,则限制策略将先回退到组织的默认限制策略。但是,如果默认策略已损坏或丢失,则限制策略将回退到“回退策略”。由于回退策略已嵌入至 Exchange 中,因此失败的可能性较低。
回退策略还适用于已经过身份验证的帐户,例如:计算机帐户、跨林联系人以及没有邮箱的 Active Directory 帐户。这些帐户将拥有已分配的回退策略值。由于这些帐户使用回退策略,因此策略值无法修改。
回退策略使用下列值:
访问类型 |
MaxConcurrency |
PercentTimeinAD |
PercentTimeinCAS |
PercentTimeinRPC |
其他 |
匿名 |
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) |
默认和非默认策略
了解策略参数
限制策略设置通过使用 Exchange 命令行管理程序中的 Get-ThrottlingPolicy、Set-ThrottlingPolicy、New-ThrottlingPolicy 和 Remove-ThrottlingPolicy cmdlet 进行管理。
限制策略的可接受负载通过该限制策略上的 cmdlet 参数值定义。限制策略所涉及的组件类型如下:
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。参数名以组件类型首字母缩写词作为前缀。下表列出了用于限制策略 cmdlet 中参数的组件类型首字母缩写词。
用于限制策略 cmdlet 的组件类型首字母缩写词
组件首字母缩写词 | 描述 | 示例 |
---|---|---|
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 服务参数的限制,例如,EWSMaxConcurrencyEWSPercentTimeInADEWSPercentTimeInCAS 和 EWSPercentTimeInMailboxRPC。 |
默认和非默认策略
MaxConcurrency
MaxConcurrency 策略参数的值表示指定用户可以针对 Exchange 服务器同时建立的并发连接数。连接将在收到请求时建立,一直持续到将响应完整地发送给请求者。如果用户尝试提出的并发请求数超过其策略允许的范围,则新的连接尝试将失败。但是,现有的连接仍然有效。<Component Acronym>MaxConcurrency 的有效范围介于 0 到 2147483647(包含两者)之间。要表示 <Component Acronym>MaxConcurrency 不应该受限制,此值应该设置为 $null
。
重要说明: |
---|
除非有业务需要,否则请勿将限制策略参数设置为 $null 。非限制用户在有意或无意对服务器施加高负载的能力方面将不受限制。 |
PercentTimeInCAS、PercentTimeInAD 和 PercentTimeInMailboxRPC
PercentTimeInCAS、PercentTimeInAD 或 PercentTimeInMailboxRPC 策略参数的值表示一分钟可以使用的百分比:
运行客户端访问服务器代码 (<Component Acronym>PercentTimeInCAS)
运行 LDAP 请求 (<Component Acronym>PercentTimeInAD)
运行邮箱 RPC 请求 (<Component Acronym>PercentTimeInMailboxRPC)
如果值为 100,则表示在每个一分钟期限内,进程可花费 60 秒时间消耗相关资源。虽然进程似乎始终不会遇到限制值设为 100 的情况,但仍需要考虑并发请求的影响。如果进程发出了两个并发请求且每个请求都花费 60 秒钟在客户端访问服务器上运行代码,则该进程在 60 秒钟期限内有效使用了 120 秒,从而表示 <Component Acronym>PercentTimeInCAS 值为 200%。
要表示 PercentTimeInCAS、PercentTimeInAD 和 PercentTimeInMailboxRPC 不应该受限制,此值应设为 $null
。
重要说明: |
---|
除非有业务需要,否则请勿将限制策略参数设置为 $null 。用户在有意或无意对服务器施加高负载的能力方面将不受限制。 |
请务必注意,<Component Acronym>PercentTimeInCAS 是 <Component Acronym>PercentTimeInAD 和 <Component Acronym>PercentTimeInMailboxRPC 的重叠超集。这意味着客户端访问服务器处理时间上的消耗将始终大于 <Component Acronym>PercentTimeInAD 和 <Component Acronym>PercentTimeInMailboxRPC 上的消耗。这是因为发出 Exchange 或 RPC 调用的 Active Directory 组件必须先运行客户端访问服务器代码。此外,在发出 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 参数定义用户可以同时运行的并发 cmdlet 数。此值不一定与用户打开的浏览器数匹配。
PowerShellMaxCmdlets
PowerShellMaxCmdlets 参数定义在每段未受限制的时间段内可以运行的 cmdlet 数量。此参数直接取决于 PowerShellMaxCmdletsTimePeriod 参数所定义的值。应同时设置这两个值。
PowerShellMaxCmdletsTimePeriod
PowerShellMaxCmdletsTimePeriod 参数定义用户可以运行由 PowerShellMaxCmdlets 参数所定义数量的 cmdlet 的时间段(秒)。
PowerShellMaxCmdletQueueDepth
PowerShellMaxCmdletQueueDepth 参数定义用户可以同时运行的操作数量。该值直接影响 PowerShellMaxCmdlets 和 PowerShellMaxConcurrency 参数的行为。例如,PowerShellMaxConcurrency 参数会至少使用两个由 PowerShellMaxCmdletQueueDepth 参数所定义的操作,但其他操作也将根据 cmdlet 每次运行时的限制进行计数。根据限制计算的操作数量取决于所运行的 cmdlet。建议 PowerShellMaxCmdletQueueDepth 参数的值至少是 PowerShellMaxConcurrency 参数值的四倍。该参数不会影响通过使用 Exchange 控制面板运行的操作或通过 Exchange Web 服务运行的操作。
默认和非默认策略
管理客户端限制策略
通过 Exchange 命令行管理程序,可以使用下表中所述的 cmdlet 修改和查看客户端限制策略设置。
用于管理客户端访问服务器上客户端限制策略的 cmdlet
Cmdlet 名称 | 描述 |
---|---|
New-ThrottlingPolicy |
此 cmdlet 可新建限制策略。 |
Remove-ThrottlingPolicy |
此 cmdlet 可删除限制策略。 |
Get-ThrottlingPolicy |
使用此 cmdlet 可以查看限制策略的设置。 |
Set-ThrottlingPolicy |
此 cmdlet 可以修改限制策略的所有可用设置。 |
要查看这些 cmdlet 的语法和参数,请参阅 New-ThrottlingPolicyRemove-ThrottlingPolicyGet-ThrottlingPolicy 和 Set-ThrottlingPolicy。
可将限制策略与特定对象关联。对象可以是拥有邮箱的用户、没有邮箱的用户、联系人或计算机帐户。有关这些 cmdlet 的语法和参数,请参阅 Get-ThrottlingPolicyAssociation 和 Set-ThrottlingPolicyAssociation。
注意: |
---|
要将限制策略与单个用户或用户组关联,请将 ThrottlingPolicy 参数与 New-Mailbox 和 Set-Mailbox cmdlet 一起使用。 |
按用户管理客户端限制策略设置
可以在 Exchange 命令行管理程序中使用 Set-Mailbox 和 New-Mailbox cmdlet 的 ThrottlingPolicy 参数,以便通过修改邮箱属性将客户端限制策略与单个用户或用户组关联。有关详细信息,请参阅 Set-Mailbox 和 New-Mailbox。
默认和非默认策略
常见的限制策略管理任务
以下是一些可用于管理客户端限制策略的方法。
检索默认的限制策略
默认情况下,客户端限制策略会将 IsDefault 参数设置为 true。可以使用 where-object
筛选器检索默认限制策略。以下示例显示了如何检索默认限制策略。
Get-ThrottlingPolicy | where-object {$_.IsDefault -eq $true}
检索用于管理用户的限制策略
可以按用户设置限制策略。因此,可能需要检索管理特定用户的策略。可以从感兴趣的用户的邮箱中获取 ThrottlingPolicy
参数并将其传递给 Get-ThrottlingPolicy cmdlet。以下示例中使用了一位名为 Tony Smith 的用户的邮箱。
$policy = $null;
$policyLink = (Get-Mailbox tonysmith).ThrottlingPolicy;
if ($policyLink -eq $null)
{
$policy = Get-ThrottlingPolicy | ? {$_.IsDefault};
}
else
{
$policy = $policyLink | Get-ThrottlingPolicy;
}
默认和非默认策略
新建非默认限制策略
要新建非默认限制策略,请运行 New-ThrottlingPolicy cmdlet 并设置所需参数。省略的任何参数都将继承默认限制策略的值。以下示例创建了新的限制策略 ClientThrottlingPolicy2
。新策略与默认限制策略有着几乎相同的设置。不同之处在于新的非默认限制策略 ClientThrottlingPolicy2
将 EWSPercentTimeInCAS
设置为 80 并关闭了 EWSPercentTimeInAD
限制。
New-ThrottlingPolicy -Name ClientThrottlingPolicy2 -EWSPercentTimeInCAS 80 -EWSPercentTimeInAD $null;
将非默认合并策略分配给用户
要将非默认限制策略分配给用户,请使用 Set-Mailbox cmdlet,方法如下。
$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 cmdlet 并筛选限制策略标识,如下例所示。在此示例中,$policy
是要筛选的策略。
Get-Mailbox | where-object {$_.ThrottlingPolicy -eq $policy.Identity}
删除限制策略
只能删除非默认策略以及未与任何邮箱关联的限制策略。要执行删除操作,请运行 Remove-ThrottlingPolicy cmdlet 并使用以下命令传递限制策略的标识。
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 cmdlet 并指定要更改的参数。例如,要将默认限制策略的 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 客户端访问服务禁用限制日志记录。因此,不会在 RPC 客户端访问日志中看到限制信息。若要启用限制日志记录,请按照以下步骤执行操作:
在记事本之类的编辑器中打开以下文件: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。保留所有权利。