最大并发 API 监视器

Microsoft.Windows.Server.10.0.MaxConcurrentAPI.Monitor (UnitMonitor)

当达到最大并发 API 条件时,此监视器会发出警报。

Knowledge Base article:

摘要

当客户遇到 Windows 身份验证时,Exchange、SharePoint + LOB 将中断服务,因为 MaxConcurrentAPI 的默认值低,MaxConcurrentAPI 是服务器可以同时进行的最大 NTLM 或 Kerberos PAC 密码验证次数的上限。

请考虑以下情形:

在这种情况下,NTLM 请求超时。例如,当出现此问题时,Exchange 客户端不会向 Exchange 服务器进行身份验证。因此,用户无法访问其邮箱,Microsoft Outlook 似乎停止响应。

原因

因为达到了 NTLM API 限制值,所以会出现此问题。

激增的设备产生了身份验证压力,从而导致大型组织服务中断有增长的趋势。

云获得的规模经济重点强调利用 Active Directory 的 Windows 基础结构。

BPOS 和 O365 已经分别将此值增加到 10 和 150。通过过去的 CSS 案例工作,已经广泛地部署了注册表修复功能。

解决方法

注意:无法对 IIS 应用程序池或对与 Exchange 相关的某些服务禁用 Kerberos PAC 验证。

注意:为了确定要在环境中为 MaxConcurrentApi 设置设定的值,请参阅以下知识库文章。

知识库文章: 2688798

其他

如何使用 MaxConcurrentApi 设置对 NTLM 身份验证执行性能调整。

详细信息

有关此问题的详细信息,请查看下面的 TechNet 文章。 针对 NTLM 传递身份验证配置 MaxConcurrentAPI

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
Parent MonitorSystem.Health.AvailabilityState
CategoryStateCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.MaxConcurrentAPI.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
已达到最大并发 API 警报
服务器 {0} 中已达到最大并发 API
RunAsSystem.PrivilegedMonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.MaxConcurrentAPI.Monitor" Accessibility="Public" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="WindowsServer!Microsoft.Windows.Server.MaxConcurrentAPI.MonitorType" ConfirmDelivery="false" RunAs="System!System.PrivilegedMonitoringAccount">
<Category>StateCollection</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.MaxConcurrentAPI.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="MaxConcurrentAPIAvailable" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="MaxConcurrentAPIReached" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<DiagnosticMode>0</DiagnosticMode>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<ThresholdWaiters>50</ThresholdWaiters>
<ThresholdTimeouts>2000</ThresholdTimeouts>
</Configuration>
</UnitMonitor>