Procentuální hodnota času DPC logického procesoru

Microsoft.Windows.Server.10.0.LogicalProcessor.PercentDPCTime (UnitMonitor)

Monitoruje procentuální hodnotu času DPC.

Knowledge Base article:

Souhrn

Procento času DPC (Procesor\% času DPC) tohoto logického procesoru překročilo prahovou hodnotu. Celkový výkon systému se může významně snížit, což může vést k nízkému výkonu operačního systému a aplikací.

Procento času DPC je procentuální hodnotou času, který logický procesor stráví přijímáním a obsluhou odložených volání procedur (DPC). DPC jsou přerušení, která se spouští s nižší prioritou než standardní přerušení. Pokud je vysoké procento času DPC trvalejší, může jít o kritický bod logického procesoru nebo o problém týkající se určité aplikace nebo hardwaru, který může výrazně snížit celkový výkon systému.

Příčiny

Vysoká hodnota čítače % času DPC může být způsobena jednou nebo více z následujících možností:

Řešení

K určení hlavní příčiny stavu vysoké hodnoty DPC postupujte následovně.

Sledujte poměr času procesoru stráveného obsluhou přerušení a DPC. To provedete monitorováním následujících čítačů v reálném čase pomocí nástroje Sledování systému:

Porovnejte hodnoty čítačů doby přerušení v % a doby DPC v % s procesorovým časem v % pro každou instanci procesoru.

Pokud má instance logického procesoru dlouhodobě % času procesoru > 85 % a zároveň spotřebuje > 15 % tohoto času obsluhou přerušení a/nebo DPC, je pravděpodobným kritickým bodem výkonu logický procesor. Nízký výkon je možné vyřešit upgradem nebo přidáním dalších procesorů do počítače.

Pokud má logický procesor dlouhodobě % času procesoru < 85 % a zároveň spotřebuje > 15 % tohoto času obsluhou přerušení a/nebo DPC, může být příčinou nízkého výkonu problém související s aplikacemi nebo hardwarem.

Pokud je hlavní příčinou hardwarové zařízení, správce zjistí, že % času DPC se pravděpodobně významně zvýšilo během krátkého časového období. K tomuto často dochází při instalaci nového hardwaru nebo upgradu ovladačů. Pokud může správce příslušný problém identifikovat jako potíže s hardwarem nebo ovladačem zařízení, jde potíže vyřešit ve spolupraci s dodavatelem.

V případě, že provádíte správu víceprocesorového systému, který nedistribuuje přerušení symetricky, můžete distribuci zatížení procesoru často zlepšit přidáním síťových adaptérů, takže na každý procesor bude k dispozici jeden adaptér. Obecně přidáváte adaptéry pouze v případě, že potřebujete zlepšit propustnost systému. Síťové adaptéry mají stejně jako každý dodatečný hardware určitou vnitřní režii. Je-li však jeden z procesorů takřka vždy aktivní (tj., jestliže Informace o procesoru: % procesorového času = 100) a více než polovina tohoto času je vynaložena na obsluhu DPC (jestliže Informace o procesoru: % času DPC > 50), pak přidáním adaptéru pravděpodobně dojde ke zlepšení výkonu systému, pokud už není šířka pásma sítě nasycená.

Pokud je hlavní příčinou určitá aplikace, zjistíte, že přerušení DPC jsou pravděpodobně blokována aplikací, která odeslala volání, jehož provedení zabírá významné množství času. Během této doby jsou DPC blokovány a budou zařazeny do fronty. Chcete-li určit, která aplikace je hlavní příčinou, je nutné spustit pokročilý nástroj pro sledování výkonu, trasování a diagnostiku, pomocí něhož přesně určíte aplikaci, která je příčinou potíží s výkonem.

Element properties:

TargetMicrosoft.Windows.Server.10.0.LogicalProcessor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor
Counter Name\% DPC Time
Frequency120
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.LogicalProcessor.PercentDPCTime" Accessibility="Public" Enabled="false" Target="ServervNext!Microsoft.Windows.Server.10.0.LogicalProcessor" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% DPC Time</CounterName>
<ObjectName>Processor</ObjectName>
<InstanceName>$Target/Property[Type="ServervNext!Microsoft.Windows.Server.10.0.LogicalProcessor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>15</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>