ATQ Average Threads 監視器

Microsoft.Windows.Server.2016.AD.Performance.Atq.AvgThreads.Monitor (UnitMonitor)

使用中 ATQ 執行緒總計的監視器。

Knowledge Base article:

摘要

Asynchronous Thread Queue (ATQ) Average Threads 監視器。使用中的 ATQ 執行緒數目很高,如此可能會影響到用戶端要求的輸送量。

服務要求的可用執行緒數目是固定的。預設值及建議的組態為每個處理器核心各 4 個。如果所有執行緒都在使用中,多出來的要求會停留在佇列中,直到有執行緒可以使用為止。

原因

可能的原因如下:

解決方式

檢視電腦的整體系統效能,以判斷是否需要額外的資源。

新增額外的網域控制站有助於達到負載平衡。

請確定代管 DNS 的 DC 數目足夠。

外部

Element properties:

TargetMicrosoft.Windows.Server.2016.AD.DomainControllerRole
Parent MonitorMicrosoft.Windows.Server.2016.AD.AtqMonitors.Performance.AggregateMonitor
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.2016.AD.Performance.Atq.AvgThreads.Monitor.Monitortype
RemotableFalse
AccessibilityPublic
Alert Message
使用中 ATQ 執行緒總計數在多份樣本上已超過一或多個閾值。
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2016.AD.Performance.Atq.AvgThreads.Monitor" Accessibility="Public" Enabled="true" Target="AD2016Core!Microsoft.Windows.Server.2016.AD.DomainControllerRole" ParentMonitorID="Microsoft.Windows.Server.2016.AD.AtqMonitors.Performance.AggregateMonitor" Remotable="false" Priority="Normal" TypeID="Microsoft.Windows.Server.2016.AD.Performance.Atq.AvgThreads.Monitor.Monitortype" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2016.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>