Ten monitor generuje alerty, gdy zostanie osiągnięty warunek maksymalnej liczby równoczesnych interfejsów API.
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:
Istnieje co najmniej jeden las z wieloma domenami.
W różnych domenach istnieją kombinacje użytkowników i zasobów (takich jak aplikacje lub serwery proxy).
Serwer zasobów z systemem Windows Server otrzymuje wiele żądań logowania protokołu NTLM od zdalnych użytkowników domeny.
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.
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.
Zwiększ wartość rejestru MaxConcurrentApi na serwerach, na których występuje problem. Aby zmienić ustawienie MaxConcurrentApi, wykonaj następujące czynności:
1. Kliknij menu Start, kliknij opcję Uruchom, wpisz regedit i kliknij przycisk OK.
2. Znajdź i kliknij następujący podklucz rejestru:
3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
4. W menu Edycja wskaż polecenie Nowy i kliknij opcję Wartość DWORD.
5. Wpisz MaxConcurrentApi i naciśnij klawisz Enter.
6. W menu Edycja kliknij polecenie Modyfikuj.
7. Wpisz nowe ustawienie MaxConcurrentApi jako wartość dziesiętną, a następnie kliknij przycisk OK.
8. W wierszu polecenia wpisz następujące polecenie i naciśnij klawisz Enter:
9. net stop netlogon
10. Wpisz następujące polecenie i naciśnij klawisz Enter:
11. net start netlogon
Upewnij się, że nie występuje żadne opóźnienie w sieci między serwerem a kontrolerami domeny (lub zaufanymi kontrolerami domeny, jeśli problem wystąpił na kontrolerze domeny). Opóźnienie sieci może być przyczyną problemu lub go potęgować.
Aplikacje i usługi korzystające z protokołu NTLM można po prostu skonfigurować do użycia uwierzytelniania Kerberos. Sposób wykonania tej czynności różni się w zależności od aplikacji.
W przypadku, gdy zaobserwowanym objawem jest sprawdzanie poprawności pliku PAC protokołu Kerberos, należy wyłączyć tę funkcję sprawdzania, jeśli usługa to umożliwia. Należy to wykonać na serwerze, na którym pojawia się źródłowe zdarzenie systemowe 7 protokołu Kerberos.
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 Knowledge Base: 2688798
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).
Target | Microsoft.Windows.Server.10.0.OperatingSystem | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | StateCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.Server.MaxConcurrentAPI.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | System.PrivilegedMonitoringAccount |
<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>