CPU-DPC-Zeit (\%) (Windows Server 2008 R2)

Microsoft.Windows.Server.2008.R2.Processor.PercentDPCTime (UnitMonitor)

Überwacht die DPC-Zeit (\%) unter dem Betriebssystem Windows Server 2008 R2.

Knowledge Base article:

Zusammenfassung

Der Wert für „DPC-Zeit (%)“ (Prozessorinformationen\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.

Dieser Monitor gilt nur für das Betriebssystem Windows Server 2008 R2.

Ursachen

Ein hoher Wert für „DPC-Zeit (%)“ kann folgende Ursachen haben:

Lösungen

Aktuelle Informationen zu den für Prozessoren relevanten Leistungsindikatoren finden Sie in der folgenden Ansicht:

Leistungsansicht für Prozessoren starten

Gehen Sie zum Ermitteln der Ursache für eine hohe DPC-Rate wie folgt vor:

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 > 85 % ist und der Prozessor außerdem > 15 % dieser Zeit mit dem Verarbeiten von Interrupts und/oder DPCs verbringt, ist 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, sind DPCs wahrscheinlich durch eine Anwendung blockiert. Diese Anwendung wiederum hat einen Aufruf ausgegeben, dessen Ausführung beträchtliche Zeit in Anspruch nimmt. In dieser Zeit werden DPCs blockiert und in eine Warteschlange eingereiht. Zur Ermittlung der spezifischen Anwendung, die die Hauptursache für das Leistungsproblem darstellt, sind erweiterte Leistungsüberwachungs-, Ablaufverfolgungs- und Diagnoseverfahren erforderlich.

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.R2.Processor.PercentDPCTime" Accessibility="Public" Enabled="false" Target="Server2008!Microsoft.Windows.Server.2008.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 Information</ObjectName>
<InstanceName>$Target/Property[Type="WindowsServer!Microsoft.Windows.Server.Processor"]/PerfmonInstance$</InstanceName>
<Frequency>120</Frequency>
<Threshold>15</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>