Monitor maksymalnej liczby równoczesnych interfejsów API w systemie Windows Server 2012

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

Ten monitor generuje alerty, gdy zostanie osiągnięty warunek maksymalnej liczby równoczesnych interfejsów API.

Knowledge Base article:

Podsumowanie

Klienci doświadczają awarii uwierzytelniania systemu Windows, programu Exchange i programu SharePoint + LOB ze względu na niską wartość domyślną ustawienia MaxConcurrentAPI, które określa górny limit liczby operacji weryfikacji hasła protokołu NTLM lub Kerberos PAC, jaka może zostać jednocześnie obsłużona przez serwer.

Poniżej przedstawiono przykładowy scenariusz:

W takim scenariuszu żądania NTLM przekraczają limit czasu. Kiedy ten problem występuje, na przykład klienci Exchange nie mogą uwierzytelnić się na serwerze Exchange. Z tego powodu użytkownicy nie mogą uzyskać dostępu do skrzynek pocztowych i wydaje się, że program Microsoft Outlook nie odpowiada.

Przyczyny

Ten problem występuje ze względu na osiągnięcie limitu ograniczania interfejsu API protokołu NTLM.

Rosnąca liczba urządzeń generujących ogromną ilość żądań uwierzytelniania coraz częściej prowadzi do awarii w dużych organizacjach.

Ekonomia skali zapewniana przez chmurę powoduje obciążenie infrastruktury systemu Windows, która korzysta z usługi Active Directory.

W pakietach BPOS i O365 zwiększono już tę wartość odpowiednio do 10 i 150. Poprawka rejestru została powszechnie wdrożona w ramach wcześniejszych rozwiązań przypadków CSS.

Rozwiązania

Uwaga: sprawdzania poprawności pliku PAC protokołu Kerberos nie można wyłączyć dla pul aplikacji usług IIS i niektórych usług związanych z programem Exchange.

Uwaga: aby określić wartość ustawienia MaxConcurrentApi w danym środowisku, zapoznaj się z poniższym artykułem w bazie wiedzy.

Artykuł w bazie wiedzy: 2688798

Dodatkowe informacje

How to do performance tuning for NTLM authentication by using the MaxConcurrentApi setting (Użycie ustawienia MaxConcurrentApi do dostrajania wydajności uwierzytelniania NTLM).

Więcej informacji

Aby uzyskać więcej informacji dotyczących tej kwestii, zapoznaj się z następującym artykułem w witrynie TechNet. Configuring MaxConcurrentAPI for NTLM Pass-Through Authentication (Konfigurowanie ustawienia MaxConcurrentAPI dla przekazywanego uwierzytelniania NTLM).

Element properties:

TargetMicrosoft.Windows.Server.6.2.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
Alert Osiągnięto maksymalną liczbę równoczesnych interfejsów API
Osiągnięto maksymalną liczbę równoczesnych interfejsów API na serwerze {0}
RunAsSystem.PrivilegedMonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2012.MaxConcurrentAPI.Monitor" Accessibility="Public" Enabled="true" Target="WindowsServer!Microsoft.Windows.Server.6.2.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.2012.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>