Windows Server 2008 最大並行 API 監視

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

此監視會在達到最大並行 API 的條件時發出警示。

Knowledge Base article:

摘要

客戶遇到由於 MaxConcurrentAPI 的預設值過低導致 Windows 驗證、Exchange, SharePoint + LOB 中斷的情況;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 文件。 Configuring MaxConcurrentAPI for NTLM Pass-Through Authentication (設定 NTLM 傳遞驗證的 MaxConcurrentAPI)

Element properties:

TargetMicrosoft.Windows.Server.2008.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.2008.MaxConcurrentAPI.Monitor" Accessibility="Public" Enabled="true" Target="Server2008!Microsoft.Windows.Server.2008.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.2008.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>