Czas DPC procesora (\%) (Windows Server 2008 R2)

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

Monitoruje procent czasu DPC w systemie operacyjnym Windows Server 2008 R2.

Knowledge Base article:

Podsumowanie

Licznik Czas PDC (%) (Informacje o procesorze\Czas DPC (%)) dla procesora przekroczył wartość progową. Ogólna wydajność systemu może znacząco się obniżyć, co spowoduje spadek wydajności systemu operacyjnego oraz aplikacji.

Licznik Czas DPC (%) przedstawia procentową część czasu, jaką procesor poświęca na otrzymywanie i obsługę opóźnionych wywołań procedur (DPC). Wywołania DPC to przerwania realizowane z niższym priorytetem niż przerwania standardowe. Jeśli przez dłuższy czas występuje wysoka wartość licznika Czas DPC (%), może występować „wąskie gardło” procesora albo problem z aplikacją lub sprzętem, który może znacząco obniżyć ogólną wydajność systemu.

Ten monitor jest ważny tylko dla systemu operacyjnego Windows Server 2008 R2.

Przyczyny

Wysoka wartość licznika Czas DPC (%) może być spowodowana przez co najmniej jedną z następujących przyczyn:

Rozwiązania

Aby przejrzeć niedawną historię liczników wydajności związanych z procesorem, można użyć następującego widoku:

Uruchom widok wydajności procesora

W celu ustalenia głównej przyczyny wysokiej wartości DPC postępuj zgodnie z poniższą procedurą.

Sprawdź udział czasu procesora przeznaczonego na obsługę przerwań i wywołań DPC. W tym celu monitoruj następujące liczniki w czasie rzeczywistym za pomocą Monitora systemu:

W odniesieniu do każdego wystąpienia procesora porównaj wartości wskazywane przez liczniki Czas przerwań (%) i Czas DPC (%) z wartością licznika Procesor\Czas procesora (%).

Jeśli wystąpienie procesora przez dłuższy czas działa przy wartości licznika Czas procesora (%) powyżej 85%, a licznik czasu przerwań i/lub czasu DPC ma wartość powyżej 15%, problem z wydajnością może być spowodowany przez procesor. Problem z wydajnością można zlikwidować przez wymianę procesora na wydajniejszy lub zainstalowanie dodatkowych procesorów.

Jeśli procesor pracuje przez dłuższy czas przy wartości licznika Czas procesora (%) poniżej 85%, a obsługa przerwań i/lub wywołań DPC zajmuje powyżej 15% tego czasu, problem z wydajnością może być spowodowany przez problemy z aplikacjami lub sprzętem.

Gdy główną przyczyną jest urządzenie sprzętowe, administrator prawdopodobnie wykryje znaczący wzrost wartości licznika Czas DPC (%) w krótkim okresie. Taka sytuacja najczęściej występuje po zainstalowaniu nowego sprzętu lub po uaktualnieniu sterowników. Jeśli administrator ustali, że problem jest powodowany przez sprzęt lub sterownik urządzenia, można go rozwiązać we współpracy z dostawcą.

W przypadku administrowania systemem wieloprocesorowym, który nie rozprasza przerwań symetrycznie, można zwiększyć rozkład obciążenia procesora przez dodanie kart sieciowych tak, aby każdy procesor miał odrębną kartę. Ogólnie rzecz biorąc, karty należy dodać tylko w przypadku konieczności poprawienia przepustowości systemu. Podobnie jak inny dodatkowy sprzęt, karty sieciowe powodują pewne zwiększenie nakładów. Jeśli jednak jeden z procesorów jest prawie zawsze aktywny (tzn. gdy licznik Procesor\Czas procesora (%) = 100), a ponad połowa jego czasu jest poświęcana na obsługę wywołań DPC (tzn. gdy licznik Czas DPC (%) wynosi powyżej 50), dodanie karty sieciowej prawdopodobnie zwiększy wydajność systemu, dopóki dostępna przepustowość sieci nie zostanie przekroczona.

Jeśli główną przyczyną jest aplikacja, wywołania DPC będą prawdopodobnie blokowane przez aplikację wywołującą polecenie, którego ukończenie zajmuje dużo czasu. W tym czasie wywołania DPC są zablokowane i będą umieszczane w kolejce. W celu dokładnego ustalenia, która aplikacja powoduje problem z wydajnością, należy wykonać zaawansowane sprawdzenie wydajności, śledzenie oraz diagnostykę.

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>