Pourcentage de temps DPC total

Microsoft.Windows.Client.Win7.OperatingSystem.TotalDPCTime (UnitMonitor)

Analyse le pourcentage de temps DPC.

Knowledge Base article:

Résumé

La valeur Pourcentage du temps PDC (Processeur\Pourcentage du temps PDC\_Total) du système a dépassé le seuil. Les performances globales du système peuvent considérablement diminuer, ce qui a un effet néfaste sur le fonctionnement du système d'exploitation et des applications.

% Temps DPC est le pourcentage de temps que le processeur passe à recevoir et traiter des appels DPC. Les appels DPC sont des interruptions qui s'exécutent à un niveau de priorité inférieure par rapport aux interruptions standard. Si un pourcentage du temps DPC élevé est maintenu, cela peut indiquer un goulot d'étranglement au niveau du processeur ou un problème matériel ou relatif à une application, ce qui peut réduire de manière significative les performances globales du système.

Causes

Une valeur élevée de % Temps DPC peut provenir d'une ou plusieurs des causes suivantes :

Solutions

Pour déterminer l'origine d'un DPC élevé, suivez le processus décrit ci-dessous.

Observez la proportion de temps processeur passé à traiter les interruptions et les appels DPC. Pour cela, analysez les compteurs suivants en temps réel à l'aide du Moniteur système :

Comparez les valeurs des compteurs % Temps d'interruption et % Temps DPC avec Processeur\% Temps processeur pour chaque instance de processeur.

Si une instance de processeur exécute un Pourcentage de temps processeur maintenu supérieur à 85 % et qu'elle passe également plus de 15 % de ce temps à traiter des interruptions et/ou des appels DPC, le processeur est peut-être à la source d'un goulot d'étranglement. Ce goulot d'étranglement peut être solutionné grâce à la mise à niveau ou à l'ajout de processeurs supplémentaires sur l'ordinateur.

Si le processeur exécute un % Temps processeur maintenu inférieur à 85 % et qu'il passe également plus de 15 % de ce temps à traiter des interruptions et/ou des appels DPC, le problème de performance peut provenir d'une application ou d'un problème matériel.

Lorsque l'origine du problème provient d'un périphérique matériel, un administrateur pourra voir que le % Temps DPC a probablement augmenté de manière substantielle sur un court laps de temps. Cela se produira fréquemment lors de l'installation de nouveaux matériels ou de la mise à niveau des pilotes. Si l'administrateur peut isoler le problème comme étant un problème de pilote matériel/périphérique, une solution peut être trouvée avec l'aide de l'éditeur.

Dans les cas où vous administrez un système multi-processeurs qui ne distribue pas les interruptions symétriquement, vous pouvez dans la plupart des cas améliorer la distribution de la charge du processeur en rajoutant des cartes réseau afin que chaque processeur ait sa propre carte. En général, vous ajoutez des cartes quand vous avez besoin d'améliorer le débit de votre système. Les cartes réseau, tout comme n'importe quel matériel supplémentaire, ont un délai intrinsèque. Toutefois, si l'un des processeurs est pratiquement toujours actif (c'est-à-dire que Processeur : % Temps processeur = 100) et qu'il passe plus de la moitié de son temps à traiter des appels DPC (si Processeur : % Temps DPC > 50), alors l'ajout d'une carte améliorera très certainement les performances du système, à condition que la bande passante disponible sur le réseau ne soit pas déjà saturée.

Lorsque l'origine du problème provient d'une application, vous découvrirez probablement que des appels DPC sont bloqués par une application ayant émis un appel qui a besoin d'énormément de temps pour se terminer. Pendant ce temps, les appels DPC sont bloqués et mis en file d'attente. Afin de déterminer quelle application est à l'origine de ce problème, vous devez exécuter les performances avancées, le traçage et les diagnostics pour déterminer avec exactitude l'application responsable de ce problème de performance.

Element properties:

TargetMicrosoft.Windows.Client.Win7.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Instance NameProcessor
Counter Name\% DPC Time
Frequency120
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.AverageThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Le pourcentage du temps DPC total est trop élevé
Le seuil du compteur de performance Processeur\Pourcentage du temps PDC\_Total a été dépassé. La valeur ayant dépassé le seuil est la suivante : {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Client.Win7.OperatingSystem.TotalDPCTime" Accessibility="Public" Enabled="true" Target="Win7!Microsoft.Windows.Client.Win7.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.AverageThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Client.Win7.OperatingSystem.TotalDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% DPC Time</CounterName>
<ObjectName>Processor</ObjectName>
<InstanceName>_Total</InstanceName>
<Frequency>120</Frequency>
<Threshold>95</Threshold>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>