Монитор процента времени DPC в универсальном Linux
Высокое значение "Общий процент времени DPC" (у одного процессора). Производительность системы может существенно снизиться.
Общее время DPC — это время, которое один процессор затратил на получение и обслуживание вызовов отложенных процедур (DPC). DPC — это прерывания с более низким приоритетом, чем обычные прерывания. Значение "Процент времени DPC" входит в состав значения "Процент времени работы в привилегированном режиме", поскольку вызовы DPC выполняются в привилегированном режиме. Если высокое значение процента времени DPC сохраняется постоянно, то узким местом может быть процессор либо существует проблема с приложением или оборудованием, которая существенно снижает общую производительность системы.
Пороговое значение монитора анализируется путем усреднения значений, возвращаемых при опросе агента. При этом параметр"Число выборок" определяет число образцов, участвующих в вычислении среднего значения. Значение, возвращаемое агентом, — это скользящее среднее 5 последних значений, полученных по запросу с минутным интервалом.
Мониторинг отдельных процессоров по умолчанию отключен. Включите мониторинг, включив обнаружение объектов "Обнаружение процессора в универсальном Linux".
Конфигурация по умолчанию
Параметр | Значение по умолчанию |
Пороговое значение | 15 |
Интервал (в секундах) | 300 |
Число выборок | 3 |
Для изменения значений определенных выше параметров для всех экземпляров или отдельных экземпляров и групп могут использоваться переопределения.
Высокое значение процента времени DPC может быть вызвано одной из следующих причин или несколькими:
перегруженность процессора
программная проблема
аппаратная проблема или проблема, связанная с драйвером устройства
Для определения основной причины высокого уровня времени DPC выполните описанные ниже действия. Выясните часть процессорного времени, которое тратится на обслуживание прерываний и DPC. Чтобы сделать это, следите за указанными метриками:
Процессор\% загруженности процессора
Процессор\% времени прерываний
Процессор\% времени DPC
Сравните значения метрик Процент времени прерываний" и "Процент времени DPC" со значением "Процессор\Процент загруженности процессора" для каждого экземпляра процессора.
Если показатель "Процент загруженности процессора" стабильно превышает 85 %, а показатель "Процент времени прерываний" или "Процент времени DPC" превышает 15 %, то узким местом для производительности системы, вероятно, являются процессоры. Это можно исправить путем обновления процессора или установки дополнительных процессоров.
Если показатель "Процент загруженности процессора" обычно не превышает 85 %, а показатель "Процент времени прерываний" или "Процент времени DPC" превышает 15 %, то проблема с производительностью может быть вызвана проблемой в приложении или оборудовании.
Target | Microsoft.Linux.Universal.Processor | ||
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.Processor.PercentDPCTime.Monitor" Accessibility="Public" Target="Universal!Microsoft.Linux.Universal.Processor" 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.Processor.PercentDPCTime.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>$Target/Property[Type="Unix!Microsoft.Unix.Processor"]/PerfmonInstance$</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>