System Processor Queue Length Windows Server 2016 and above

Microsoft.Windows.Server.10.0.OperatingSystem.SystemProcessorQueueLength.Collection (Rule)

Collection rule for the performance counter System\Processor Queue Length.

Knowledge Base article:

Summary

This rule collects performance data for the System\ Processor Queue Length performance counter.

The System\Processor Queue Length performance counter exposes the number of threads in the processor queue. Unlike the disk counters, this counter counters, this counter shows ready threads only, not threads that are running. There is a single queue for processor time even on computers with multiple processors. Therefore, if a computer has multiple processors, you need to divide this value by the number of processors servicing the workload. A sustained processor queue of less than 10 threads per processor is normally acceptable, dependent of the workload.

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
CategoryPerformanceCollection
EnabledTrue
Instance NameSystem
Counter NameProcessor Queue Length
Frequency300
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
PerformanceDS DataSource System.Performance.OptimizedDataProvider Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Default

Source Code:

<Rule ID="Microsoft.Windows.Server.10.0.OperatingSystem.SystemProcessorQueueLength.Collection" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="PerformanceDS" TypeID="SystemPerf!System.Performance.OptimizedDataProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Processor Queue Length</CounterName>
<ObjectName>System</ObjectName>
<InstanceName/>
<AllInstances>false</AllInstances>
<Frequency>300</Frequency>
<Tolerance>10</Tolerance>
<ToleranceType>Absolute</ToleranceType>
<MaximumSampleSeparation>12</MaximumSampleSeparation>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData"/>
</WriteActions>
</Rule>