Procentandel av total DPC-tid

Microsoft.Windows.Server.6.2.OperatingSystem.TotalDPCTime (UnitMonitor)

Övervakar DPC-tid i procent.

Knowledge Base article:

Sammanfattning

DPC-tid i procent (Processorinformation\DPC-tid i procent\_Totalt) för systemet har överskridit tröskelvärdet. Detta kan avsevärt försämra systemets övergripande prestanda vilket leder till försämrade operativsystems- och programprestanda.

DPC-tid i procent visas den tid i procent som processorn spenderar med att ta emot och betjäna uppskjutna proceduranrop (DPC-anrop). DPC:er är avbrott som körs med lägre prioritet än standardavbrotten. Vid en varaktigt hög DPC-tid i procent kan det finnas en flaskhals i processorn eller ett program- eller maskinvarurelaterat problem som avsevärt försämrar hela systemets prestanda.

Orsaker

Ett högt värde för DPC-tid i procent kan ha en eller flera av följande orsaker:

Lösningar

Följ anvisningen nedan för att bestämma grundorsaken till ett högt DPC-värde.

Observera andelen av processortiden som används för betjäning av avbrott och DPC:er (uppskjutna proceduranrop). Det gör du genom att övervaka följande räknare i realtid med systemövervakaren:

Om en processorinstans kör en varaktig processortid i procent som är > 85 % och även spenderar > 15 % av den tiden med att betjäna avbrott och/eller DPC:er, är det förmodligen processorn som är orsaken till prestandabegränsningen. Den här begränsningen kan åtgärdas genom att uppgradera eller lägga till fler processorer till datorn.

Om processorn kör en varaktig processortid i procent som är > 85 % och även spenderar > 15 % av den tiden med att betjäna avbrott och/eller DPC:er, är prestandaproblemet antagligen program- eller maskinvarurelaterat.

Om en maskinvaruenhet är grundorsak till problemet kan en administratör troligen se att DPC-tid i procent har ökat mycket under en kort tidsperiod. Det här inträffar ofta när ny maskinvara installeras eller drivrutiner har uppgraderats. Om administratören kan isolera problemet till ett maskinvaru- eller enhetsdrivrutinsproblem, kan det åtgärdas genom att leverantören kontaktas.

I de fall då du administrerar ett system med flera processorer som inte fördelar avbrott jämnt, kan du ofta förbättra distributionen av processorbelastningen genom att lägga till nätverkskort så att det finns ett kort för varje processor. Vanligtvis kan du bara lägga till kort när du behöver förbättra systemets genomflöde. Nätverkskort medför, liksom all extra maskinvara, vissa indirekta kostnader. Men om någon av processorerna nästan alltid är aktiv (d.v.s. om Processorinformation: processortid i procent = 100) och till mer än hälften spenderar tiden med att betjäna DPC:er (om Processorinformation: DPC-tid i procent > 50), kan du troligen förbättra systemets prestanda genom att lägga till ett kort, så länge som den tillgängliga bandbredden i nätverket inte redan utnyttjas fullt ut.

Om ett program är grundorsak till problemet beror det ofta på att DPC:er blockeras av ett program som har skickat ett anrop som tar väldigt lång tid att utföra. Under denna tid är DPC-anropen blockerade och placeras i kö. Du kan ta reda på vilket program som är grundorsak till detta genom att köra avancerade prestanda, spårningar och diagnostiktest för att fastställa exakt vilket program som orsakar prestandaproblemet.

Element properties:

TargetMicrosoft.Windows.Server.6.2.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Instance NameProcessor Information
Counter Name\% DPC Time
Frequency120
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Total DPC-tid i procent är för hög
Tröskelvärdet för prestandaräknaren Processorinformation\DPC-tid i procent\_Totalt har överskridits.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.6.2.OperatingSystem.TotalDPCTime" Accessibility="Public" Enabled="false" Target="WindowsServer!Microsoft.Windows.Server.6.2.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.6.2.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>