CPU-DPC-Zeit (\%)

Microsoft.Windows.Client.Win7.Processor.PercentDPCTime (UnitMonitor)

Überwacht, wie hoch der Anteil der DPC-Zeit ist.

Knowledge Base article:

Zusammenfassung

Der Wert für „DPC-Zeit (%)“ (Prozessor\DPC-Zeit (%)) für den Prozessor hat den Schwellenwert überschritten. Die Leistung des Systems insgesamt kann sich merklich verringern und so das Betriebssystem und Anwendungen ausbremsen.

„DPC-Zeit (%)“ gibt an, wie viel Zeit der Prozessor mit dem Empfangen und Verarbeiten von DPCs (Deferred Procedure Call, zurückgestellter Prozeduraufruf) beschäftigt war. DPCs sind Interrupts, die mit niedrigerer Priorität als Standardinterrupts ausgeführt werden. Ist der Wert für „DPC-Zeit (%)“ durchgängig hoch, ist dies möglicherweise ein Hinweis auf einen Prozessorengpass oder ein anwendungs- oder hardwarebedingtes Problem, das die Gesamtleistung des Systems merklich verringern kann.

Ursachen

Ein hoher Wert von DPC-Zeit (%) kann folgende Ursachen haben:

Lösungen

Führen Sie das folgende Verfahren aus, um die Hauptursache für eine hohe DPC-Rate zu ermitteln.

Beobachten Sie den Anteil der Prozessorzeit, der für das Verarbeiten von Interrupts und DPCs benötigt wird. Überwachen Sie dazu die folgenden Leistungsindikatoren im Systemmonitor in Echtzeit:

Vergleichen Sie für jede Prozessorinstanz die Werte der Indikatoren „Interruptzeit (%)“ und „DPC-Zeit (%)“ mit „Prozessor\Prozessorzeit (%)“.

Wenn für einen Prozessor der Wert von Prozessorzeit (%) ständig über 85 % liegt und der Prozessor außerdem über 15 % dieser Zeit mit dem Verarbeiten von Interrupts und/oder DPCs verbringt, bildet wahrscheinlich der Prozessor die Ursache für den Leistungsengpass. Dieser Engpass kann durch ein Prozessorupgrade oder durch Hinzufügen weiterer Prozessoren zum Computer behoben werden.

Wenn für einen Prozessor der Wert von Prozessorzeit (%) ständig < 85 % ist und der Prozessor > 15 % dieser Zeit mit dem Verarbeiten von Interrupts und/oder DPCs verbringt, wird das Leistungsproblem vermutlich durch ein anwendungs- oder hardwarebedingtes Problem verursacht.

Falls ein Hardwaregerät die Hauptursache darstellt, bemerkt der Administrator über eine kurze Zeiträume u. U. einen deutlichen Anstieg des Werts für „DPC-Zeit (%)“. Dies tritt häufig auf, wenn neue Hardware installiert wurde oder Treiber aktualisiert wurden. Wenn der Administrator das Problem auf ein Problem mit der Hardware oder einem Gerätetreiber zurückführen kann, sollte es zusammen mit dem Anbieter gelöst werden.

Wenn Sie ein Multiprozessorsystem verwalten, in dem Interrupts nicht symmetrisch verteilt werden, kann die Verteilung der Prozessorauslastung häufig durch Hinzufügen von Netzwerkadaptern verbessert werden, sodass für jeden Prozessor ein Adapter zur Verfügung steht. Im Allgemeinen fügen Sie nur dann Adapter hinzu, wenn der Durchsatz des Systems verbessert werden soll. Netzwerkadapter verursachen wie jede zusätzliche Hardware einen gewissen zusätzlichen Verwaltungsaufwand. Ist einer der Prozessoren aber nahezu ständig aktiv (d. h. „Prozessor\ Prozessorzeit (%) = 100“) und verbringt mehr als die Hälfte dieser Zeit mit dem Verarbeiten von DPCs (d. h. „Prozessor\ DPC-Zeit > 50“), lässt sich die Systemleistung durch das Hinzufügen eines Adapters wahrscheinlich verbessern (sofern die verfügbare Netzwerkbandbreite nicht bereits ausgeschöpft ist).

Wenn eine Anwendung die Hauptursache darstellt, werden Sie häufig feststellen, dass DPCs durch eine Anwendung blockiert werden, die einen Aufruf ausgegeben hat, dessen Ausführung beträchtliche Zeit in Anspruch nimmt. In dieser Zeit werden DPCs blockiert und in eine Warteschlange eingereiht. Um die spezifische Anwendung zu ermitteln, die die Hauptursache für das Leistungsproblem darstellt, sind erweiterte Leistungsüberwachungs-, Ablaufverfolgungs- und Diagnoseverfahren erforderlich.

Element properties:

TargetMicrosoft.Windows.Client.Win7.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Instance NameProcessor
Counter Name\% DPC Time
Frequency120
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Client.Win7.Processor.PercentDPCTime" Accessibility="Public" Enabled="true" Target="Win7!Microsoft.Windows.Client.Win7.Processor" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<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</ObjectName>
<InstanceName>$Target/Property[Type="WindowsClient!Microsoft.Windows.Client.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>15</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>