ATQ 평균 스레드 모니터

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

사용 중인 총 ATQ 스레드를 모니터링합니다.

Knowledge Base article:

요약

ATQ(비동기 스레드 큐) 평균 스레드 모니터 클라이언트 요청의 처리량에 영향을 줄 수 있는 사용 중인 ATQ 스레드 수가 높습니다.

서비스 요청에 사용할 수 있는 스레드 수는 고정되어 있습니다. 기본 및 권장 구성은 프로세서 코어당 4개입니다. 모든 스레드가 사용 중인 경우 추가 요청은 스레드를 사용할 수 있을 때까지 큐에 배치됩니다.

원인

가능한 원인은 다음과 같습니다.

해결 방법

컴퓨터의 전반적인 시스템 성능을 확인하여 추가 리소스 필요 여부를 결정합니다.

효율적으로 부하를 분산하려면 도메인 컨트롤러를 더 추가하세요.

DNS를 호스팅하는 DC의 수가 충분한지 확인하세요.

외부 정보

Element properties:

TargetMicrosoft.Windows.Server.2012.AD.DomainControllerRole
Parent MonitorMicrosoft.Windows.Server.2012.AD.AtqMonitors.Performance.AggregateMonitor
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.2012.AD.Performance.Atq.AvgThreads.Monitor.Monitortype
RemotableFalse
AccessibilityPublic
Alert Message
사용 중인 총 ATQ 스레드 수가 여러 샘플에서 하나 이상의 임계값을 초과했습니다.
{0}
RunAsDefault

Source Code:

<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>