\% Tempo totale DPC (sistema operativo Windows Server 2008 R2)

Microsoft.Windows.Server.2008.R2.OperatingSystem.TotalDPCTime (UnitMonitor)

Esegue il monitoraggio della percentuale di tempo DPC nel sistema operativo Windows Server 2008 R2.

Knowledge Base article:

Riepilogo

% Tempo DPC (Informazioni sul processore\% Tempo DPC\_Totale) per il sistema ha superato la soglia. Le prestazioni generali del sistema rallentano in modo significativo, rallentando anche il funzionamento del sistema operativo e le prestazioni delle applicazioni.

% Tempo DPC è la percentuale di tempo impiegato dal processore per ricevere e gestire le chiamate di procedura differite (DPC). Le DPC rappresentano interrupt che vengono eseguiti a priorità più bassa rispetto agli interrupt standard. % tempo DPC alta indica un collo di bottiglia nel processore o un problema relativo a un'applicazione o all'hardware, in grado di ridurre in modo significativo le prestazioni globali del sistema.

Il monitoraggio è valido solo per il sistema operativo Windows Server 2008 R2.

Cause

È possibile che un valore elevato di % Tempo DPC sia causato da una o più delle seguenti situazioni:

Soluzioni

Per determinare la causa principale del valore elevato di DPC, attenersi alle procedure elencate di seguito.

Osservare la proporzione tra il tempo del processore impiegato a gestire gli interrupt e quello impiegato per le DPC. A tale scopo, controllare i seguenti contatori in tempo reale, utilizzando Monitor di sistema:

Se un'istanza di processore funziona continuamente con valori di % Tempo processore superiori all'85% e usa una percentuale superiore al 15% di quel tempo per gestire gli interrupt e/o le DPC, è possibile che il processore stia causando un collo di bottiglia nelle prestazioni. È possibile risolvere il collo di bottiglia aggiornando o installando processori aggiuntivi sul computer.

Se un processore funziona continuamente con valori di % Tempo processore inferiori all'85% e usa una percentuale superiore al 15% di quel tempo per gestire gli interrupt e/o le DPC, è possibile che la riduzione delle prestazioni sia dovuta a un problema relativo a un'applicazione o all'hardware.

Se la causa principale risiede in un dispositivo hardware, è possibile che l'amministratore rilevi un aumento significativo del valore di % Tempo DPC in un breve periodo di tempo. Questo accade spesso quando viene installato un nuovo hardware o sono stati aggiornati i driver. Se l'amministratore riesce a localizzare il problema in un driver hardware o di dispositivo, è possibile risolverlo consultando il fornitore.

Nei casi in cui si amministra un sistema multiprocessore che non distribuisce gli interrupt in modo simmetrico, è possibile migliorare la distribuzione del carico di lavoro del processore aggiungendo schede di rete, in modo da garantire una scheda di rete per ciascun processore. In genere, le schede vengono aggiunte solo quando è necessario migliorare la velocità effettiva del sistema. Le schede di rete, come qualsiasi hardware aggiuntivo, generano un carico di lavoro intrinseco. Tuttavia, se uno dei processori è quasi sempre attivo (ovvero se Processore: % Tempo processore è pari a 100) e più della metà del tempo è dedicato alla gestione delle DPC (ovvero se Processore: % Tempo DPC > 50), è probabile che l'aggiunta di una scheda di rete migliori le prestazioni del sistema, in quanto la larghezza della banda di rete disponibile non è ancora satura.

Se la causa principale risiede in un'applicazione, è possibile che le DPC vengano bloccate da una chiamata inviata da un'applicazione, la quale richiede un tempo considerevole per il completamento. Durante questo tempo le DPC sono bloccate e vengono accodate. Per determinare quale applicazione costituisce la causa principale, è necessario eseguire funzioni avanzate di analisi, prestazioni e diagnostica per identificare esattamente l'applicazione responsabile del problema di prestazioni.

Element properties:

TargetMicrosoft.Windows.Server.2008.R2.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
Percentuale tempo DPC totale troppo elevata
La soglia per il contatore delle prestazioni Processore\\% tempo DPC\_Totale è stata superata.
RunAsDefault

Source Code:

<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>