Monitoruje procento času DPC v operačním systému Windows Server 2008 R2.
U čítače výkonu % času DPC (Informace o procesoru\% času DPC\_Total) pro systém došlo k překročení prahové hodnoty. Celkový výkon systému se může výrazně snížit, což bude mít za následek nedostatečný výkon operačního systému a aplikací.
Čítač výkonu % času DPC uvádí procentuální čas, který procesor strávil 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.
Vysoká hodnota čítače % času DPC může být způsobena jednou nebo více z následujících možností:
Omezení výkonu procesoru
Problém související se softwarem
Problém související s hardwarem nebo ovladačem zařízení
Hlavní příčinu vysoké hodnoty DPC můžete zjistit následujícím postupem.
Sledujte velikost procesorového času stráveného obsluhou přerušení a DPC. Chcete-li to provést, monitorujte pomocí programu Sledování systému v reálném čase následující čítače:
Procesor\% procesorový čas
Procesor\% doba přerušení
Procesor\% doba DPC
Pokud má instance procesoru trvale hodnotu čítače % času procesoru vyšší než 85 % a také déle než 15 % tohoto času obsluhuje přerušení a DPC, je pravděpodobným zdrojem problémů s výkonem procesor. Tyto potíže lze řešit upgradem nebo přidáním dalších procesorů do počítače.
Pokud je % zachovaného procesorového času < 85 % a % doby přerušení nebo % doby DPC > 15%, mohou problémy s výkonem vznikat vlivem aplikace nebo souviset s hardwarem.
V případě, že je hlavní příčinou problémů hardwarové zařízení, správce zjistí, že se hodnota čítače % času DPC pravděpodobně během krátké doby podstatně zvýšila. K tomu často dochází, pokud je nainstalován nový hardware nebo byly upgradovány ovladače. Pokud správce dokáže zjistit, že příčinou problému jsou potíže s hardwarem či ovladačem zařízení, lze problém vyřešit ve spolupráci s dodavatelem hardwaru/ovladače.
V případech, kdy spravujete víceprocesorový systém, který nedistribuuje přerušení symetricky, můžete často zlepšit rozložení zátěže procesoru přidáním síťových adaptérů tak, aby byl nasazen jeden adaptér pro každý procesor. Obecně platí, že se adaptéry přidávají pouze v případě, že potřebujete zvýšit propustnost systému. Používání síťových adaptérů, stejně jako jakéhokoli jiného přídavného hardwaru, s sebou nese určitou 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 se přidáním adaptéru může zvýšit výkon systému (za předpokladu, že ještě není využitá celá dostupná šířka pásma sítě).
Pokud je hlavní příčinou problému aplikace, zjistíte, že jsou pravděpodobně blokována pozdržená volání procedur (DPC – Deferred Procedure Call), a to tím, že aplikace zadala volání, jehož zpracování trvá příliš dlouho. V průběhu této doby jsou pozdržená volání procedur (DPC) blokována a budou zařazována do fronty. Abyste zjistili, která aplikace je příčinou problému, je nutné spustit pokročilé monitorování výkonu, trasování a diagnostiku, které vám tuto aplikaci pomohou najít.
Target | Microsoft.Windows.Server.2008.R2.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Instance Name | Processor Information | ||
Counter Name | \% DPC Time | ||
Frequency | 120 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.OperatingSystem.TotalDPCTime" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.R2.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2008.R2.OperatingSystem.TotalDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<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>_Total</InstanceName>
<Frequency>120</Frequency>
<Threshold>95</Threshold>
<Direction>greater</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>