\% Tempo DPC CPU

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

Esegue il monitoraggio della percentuale di tempo DPC

Knowledge Base article:

Riepilogo

% Tempo DPC (Informazioni sul processore\% Tempo DPC) per il processore 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.

Cause

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

Soluzioni

Per visualizzare la cronologia recente del contatore delle prestazioni relativo al processore, è possibile utilizzare la seguente vista:

Avvio della vista prestazioni del processore

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:

Confrontare i valori dei contatori % Tempo di interrupt e % Tempo DPC con quelli di Informazioni sul processore\% Tempo processore per ogni istanza di processore.

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 Informazioni sul processore: % Tempo processore è pari a 100) e più della metà del tempo è dedicato alla gestione delle DPC (ovvero se Informazioni sul 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.10.0.Processor
Parent MonitorMicrosoft.Windows.Server.10.0.Processor.PerformanceRollup
CategoryPerformanceHealth
EnabledFalse
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.10.0.Processor.Monitortype
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.Processor.PercentDPCTime" Accessibility="Public" Enabled="false" Target="ServervNext!Microsoft.Windows.Server.10.0.Processor" ParentMonitorID="Microsoft.Windows.Server.10.0.Processor.PerformanceRollup" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.10.0.Processor.Monitortype" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<CounterName>% DPC Time</CounterName>
<ObjectName>Processor</ObjectName>
<InstanceName>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>15</Threshold>
<NumSamples>5</NumSamples>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>