使用中の ATQ スレッドの合計数をモニターします。
非同期スレッド キュー (ATQ) 平均スレッド モニター。使用されている ATQ スレッド数が多いため、クライアント要求のスループットに影響を及ぼす可能性があります。
要求処理に使用できるスレッド数は決まっています。プロセッサ コアあたり 4 つが、既定で推奨されている構成です。すべてのスレッドが使用されていると、その後の要求はスレッドが使用可能になるまでキューに置かれます。
次の原因が考えられます。
ドメイン コントローラーのサイズを変更する必要があります。
1 つ以上のドメイン コントローラーでエラーが発生し、これが使用可能な最も近いドメイン コントローラーであるため、それらの負荷がこのドメイン コントローラーに転送されました。
アプリケーションがドメイン コントローラーに大きな負荷をかけています。通常は、インデックスを使用しないクエリのような、CPU を集中的に使用する非効率的な操作が原因になっています。
ドメイン コントローラーのメモリが非常に少なくなっています。
ドメイン コントローラーがサービス拒否攻撃を受けています。
コンピューターのシステム全体のパフォーマンスを表示して、追加リソースが必要かどうかを確認します。
追加のドメイン コントローラーを追加して、負荷が分散されるようにします。
DNS をホストしている DC の数が十分かどうかを確認します。
Target | Microsoft.Windows.Server.2012.AD.DomainControllerRole | ||
Parent Monitor | Microsoft.Windows.Server.2012.AD.AtqMonitors.Performance.AggregateMonitor | ||
Category | Custom | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.Server.2012.AD.Performance.Atq.AvgThreads.Monitor.Monitortype | ||
Remotable | False | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.2012.AD.Performance.Atq.AvgThreads.Monitor" Accessibility="Public" Enabled="true" Target="AD2012Core!Microsoft.Windows.Server.2012.AD.DomainControllerRole" ParentMonitorID="Microsoft.Windows.Server.2012.AD.AtqMonitors.Performance.AggregateMonitor" Remotable="false" Priority="Normal" TypeID="Microsoft.Windows.Server.2012.AD.Performance.Atq.AvgThreads.Monitor.Monitortype" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2012.AD.Performance.Atq.AvgThreads.Monitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='ErrorString']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ThreadUsageOK" MonitorTypeStateID="ThreadUsageOK" HealthState="Success"/>
<OperationalState ID="ThreadUsageWarn" MonitorTypeStateID="ThreadUsageWarn" HealthState="Warning"/>
<OperationalState ID="ThreadUsageError" MonitorTypeStateID="ThreadUsageError" HealthState="Error"/>
</OperationalStates>
<Configuration>
<Frequency>300</Frequency>
<TimeoutSeconds>300</TimeoutSeconds>
<WarnThreshold>80</WarnThreshold>
<ErrorThreshold>90</ErrorThreshold>
<NumSamples>10</NumSamples>
<MaxPoolThreads>4</MaxPoolThreads>
</Configuration>
</UnitMonitor>