Monitor łącznego czasu DPC (\%) uniwersalnego systemu operacyjnego Linux
Łączna wartość procentowa czasu DPC (dla wszystkich procesorów) jest wysoka. Może to mieć niekorzystny wpływ na wydajność systemu.
Łączny czas DPC to czas, jaki wszystkie procesory poświęcają na otrzymywanie i obsługę opóźnionych wywołań procedur (DPC). Wywołania DPC to przerwania realizowane z niższym priorytetem niż przerwania standardowe. Czas DPC (%) jest składnikiem wartości procentowej czasu uprzywilejowanego, ponieważ wywołania DPC są obsługiwane w trybie uprzywilejowanym. Jeśli przez dłuższy czas występuje wysoka wartość licznika Czas DPC (%), może występować „wąskie gardło” procesora lub problem z aplikacją lub sprzętem, który może znacząco obniżyć ogólną wydajność systemu.
Próg monitora jest analizowany w odniesieniu do średnich wartości zwracanych w sondach do agenta, gdzie parametr Liczba próbek określa liczbę próbek uwzględnionych podczas obliczania średniej. Wartość zwracana przez agenta jest średnią kroczącą 5 ostatnich wartości zwróconych w wyniku kwerendy w 1-minutowych interwałach.
Konfiguracja domyślna
Parametr | Wartość domyślna |
Próg | 15 |
Interwał (w sekundach) | 300 |
Liczba próbek | 3 |
W celu zmiany wartości parametrów zdefiniowanych powyżej dla wszystkich lub określonych wystąpień bądź grup można zastosować przesłonięcia.
Wysoka wartość Czas DPC może być spowodowana przez jedną lub więcej z poniższych kwestii:
„Wąskie gardło” procesora
Problem związany z oprogramowaniem
Problem związany ze sprzętem lub sterownikiem urządzenia
W celu ustalenia głównej przyczyny długiego czasu DPC postępuj zgodnie z poniższą procedurą. Sprawdź udział czasu procesora przeznaczonego na obsługę przerwań i wywołań DPC. W tym celu sprawdź następujące pomiary:
Procesor\Czas procesora (%) (_Łącznie)
Procesor\Czas przerwań (%) (_Łącznie)
Procesor\Czas DPC (%) (_Łącznie)
Porównaj wartości Czas przerwań (%) (_Łącznie) i Czas DPC (%) (_Łącznie) z wartością Czas procesora (%) (_Łącznie).
Jeśli procesor przez dłuższy czas działa przy wartości licznika łącznego czasu procesora powyżej 85%, a licznik łącznego czasu przerwań lub łącznego czasu DPC ma wartość powyżej 15%, problem z wydajnością może być spowodowany przez procesory. To „wąskie gardło” może zostać zlikwidowane przez wymianę procesora na lepszy lub zainstalowanie dodatkowych procesorów.
Jeśli procesor pracuje przez dłuższy czas przy wartości licznika łącznego czasu procesora (%) poniżej 85%, a licznik łącznego czasu przerwań lub łącznego czasu DPC ma wartość powyżej 15%, problem z wydajnością może być spowodowany przez problemy z aplikacjami lub sprzętem.
Target | Microsoft.Linux.Universal.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Linux.Universal.OperatingSystem.TotalPercentDPCTime.Monitor" Accessibility="Public" Target="Universal!Microsoft.Linux.Universal.OperatingSystem" TypeID="Unix!Microsoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType" Enabled="true" ParentMonitorID="SystemHealth!System.Health.PerformanceState">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Linux.Universal.OperatingSystem.TotalPercentDPCTime.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="UnderThreshold" ID="UnderThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="OverThreshold" ID="OverThreshold"/>
</OperationalStates>
<Configuration>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_ProcessorStatisticalInformation?__cimnamespace=root/scx</Uri>
<Filter/>
<SplitItems>true</SplitItems>
<Interval>300</Interval>
<ObjectName>Processor</ObjectName>
<CounterName>% Interrupt Time</CounterName>
<InstanceName>_Total</InstanceName>
<InstanceProperty>/DataItem/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='Name']</InstanceProperty>
<Value>$Data/WsManData/*[local-name(.)='SCX_ProcessorStatisticalInformation']/*[local-name(.)='PercentDPCTime']$</Value>
<Threshold>15</Threshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>