Процент времени DPC процессора

Microsoft.Linux.Universal.Processor.PercentDPCTime.Monitor (UnitMonitor)

Монитор процента времени DPC в универсальном Linux

Knowledge Base article:

Сводка

Высокое значение "Общий процент времени DPC" (у одного процессора). Производительность системы может существенно снизиться.

Общее время DPC — это время, которое один процессор затратил на получение и обслуживание вызовов отложенных процедур (DPC). DPC — это прерывания с более низким приоритетом, чем обычные прерывания. Значение "Процент времени DPC" входит в состав значения "Процент времени работы в привилегированном режиме", поскольку вызовы DPC выполняются в привилегированном режиме. Если высокое значение процента времени DPC сохраняется постоянно, то узким местом может быть процессор либо существует проблема с приложением или оборудованием, которая существенно снижает общую производительность системы.

Пороговое значение монитора анализируется путем усреднения значений, возвращаемых при опросе агента. При этом параметр"Число выборок" определяет число образцов, участвующих в вычислении среднего значения. Значение, возвращаемое агентом, — это скользящее среднее 5 последних значений, полученных по запросу с минутным интервалом.

Конфигурация

Мониторинг отдельных процессоров по умолчанию отключен. Включите мониторинг, включив обнаружение объектов "Обнаружение процессора в универсальном Linux".

Конфигурация по умолчанию

Параметр

Значение по умолчанию

Пороговое значение

15

Интервал (в секундах)

300

Число выборок

3

Для изменения значений определенных выше параметров для всех экземпляров или отдельных экземпляров и групп могут использоваться переопределения.

Причины

Высокое значение процента времени DPC может быть вызвано одной из следующих причин или несколькими:

Решения

Для определения основной причины высокого уровня времени DPC выполните описанные ниже действия. Выясните часть процессорного времени, которое тратится на обслуживание прерываний и DPC. Чтобы сделать это, следите за указанными метриками:

Сравните значения метрик Процент времени прерываний" и "Процент времени DPC" со значением "Процессор\Процент загруженности процессора" для каждого экземпляра процессора.

Если показатель "Процент загруженности процессора" стабильно превышает 85 %, а показатель "Процент времени прерываний" или "Процент времени DPC" превышает 15 %, то узким местом для производительности системы, вероятно, являются процессоры. Это можно исправить путем обновления процессора или установки дополнительных процессоров.

Если показатель "Процент загруженности процессора" обычно не превышает 85 %, а показатель "Процент времени прерываний" или "Процент времени DPC" превышает 15 %, то проблема с производительностью может быть вызвана проблемой в приложении или оборудовании.

Element properties:

TargetMicrosoft.Linux.Universal.Processor
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Unix.WSMan.Performance.Filtered.Average.Threshold.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Слишком большое значение процента времени на отложенные вызовы процедур (DPC)
Превышено пороговое значение счетчика производительности "Процессор\\% времени DPC". Пороговое значение превышает следующее значение: {0}.
RunAsDefault

Source Code:

<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>