Procento času DPC procesoru (operační systém Windows Server 2008 R2)

Microsoft.Windows.Server.2008.R2.Processor.PercentDPCTime (UnitMonitor)

Monitoruje procento času DPC v operačním systému Windows Server 2008 R2.

Knowledge Base article:

Souhrn

Čítač % času primárního řadiče domény (Informace o procesoru\% času DPC) daného procesoru překročil 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í.

% času DPC je procentuální hodnotou času, který 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 % času DPC trvalejší, může jít o snížení výkonu procesoru nebo o problém týkající se určité aplikace či hardwaru, který může výrazně snížit celkový výkon systému.

Toto monitorování je platné pouze pro operační systém Windows Server 2008 R2.

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 zobrazení nedávné historie těchto čítačů výkonu souvisejících s procesorem lze použít následující zobrazení:

Spuštění zobrazení výkonu procesoru

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

Sledujte velikost procesorového času 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 je % zachovaného procesorového času > 85 % a % doby přerušení nebo % doby DPC > 15 %, je procesor pravděpodobnou příčinou nízkého výkonu. Tento snížený výkon jde řešit upgradem nebo přidáním procesorů do počítače.

Pokud má 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 aplikací 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. Pokud je však jeden z procesorů téměř vždy aktivní (to znamená, je-li hodnota čítače Procesor: % času procesoru = 100) a více než polovinu času mu zabírá obsluha DPC (pokud je hodnota čítače Procesor: % č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á.

Je-li hlavní příčinou určitá aplikace, zjistíte, že DPC jsou pravděpodobně zablokovány 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.2008.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor Information
Counter Name\% DPC Time
Frequency120
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.Processor.PercentDPCTime" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.Processor" 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/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% DPC Time</CounterName>
<ObjectName>Processor Information</ObjectName>
<InstanceName>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>15</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>