Пороговое значение "MonitoringHost - число дескрипторов"

Microsoft.SystemCenter.Agent.MonitoringHost.HandleCountThreshold (UnitMonitor)

Этот монитор следит, чтобы значение счетчика "Процесс\Число дескрипторов" для процессов MonitoringHost.exe не превышало заданное пороговое значение в ряде последовательных выборок. Если это происходит, монитор переключается в критическое состояние, которое учитывается при последующем формировании состояния монитора "Состояние службы работоспособности". Монитор "Состояние службы работоспособности" настроен таким образом, чтобы при его переключении в критическое состояние запускалась задача восстановления, которая автоматически предпринимает попытку перезапуска службы работоспособности управления System Center.

Knowledge Base article:

Краткое описание

Это правило отслеживает использование счетчика "Процесс\Число дескрипторов" для всех экземпляров процесса узла, выполняющего слежение. Если значение счетчика превышает заданное пороговое значение, в ответ выполняется попытка перезапуска службы работоспособности управления System Center, что позволит избежать перегрузки компьютера.

Пороговые значения зависят от роли, заданной для службы работоспособности управления System Center. Ниже представлена сводка по пороговым значениям, используемым по умолчанию.

Роль службы работоспособности управления System Center

Пороговое число дескрипторов

Агент

6,000

Сервер управления

10,000

Ниже указана конфигурация реакции, в ходе которой предпринимается попытка перезапустить службу работоспособности управления System Center:

Роль службы работоспособности управления System Center

Режим ответа с перезапуском

Агент

Включен

Сервер управления

Ответный перезапуск не выполняется

Причины

Краткая сводка потенциальных причин:

Загружено слишком много правил и мониторов из всех пакетов управления, настроенных в этой службе работоспособности управления System Center.

Неправильно настроенное правило или монитор, собирающие или обрабатывающие слишком много данных (например правило сбора показаний счетчика производительности собирает данные каждую секунду)

Это может быть вызвано тем, что служба работоспособности управления System Center обслуживает слишком много пакетов управления. Каждый пакет управления может содержать значительное количество средств мониторинга при небольшом количестве используемых ресурсов. При большом числе пакетов управления количество правил и мониторов может доходить до нескольких тысяч. При этом каждый экземпляр узла, выполняющего слежение, может начать потреблять больше ресурсов.

Возможно, такая ситуация ожидаема для этой службы работоспособности управления System Center и связана с типом выполняемого ею мониторинга.

Другая причина может заключаться в том, что одно или несколько правил и мониторов не настроены оптимальным образом. Например, правило счетчика производительности, по которому попытки сбора данных производительности предпринимаются каждую секунду. Большое число настроенных таким образом правил и мониторов приводит к тому, что процесс MonitoringHost.exe начинает потреблять больше ресурсов.

Решения

Действие по умолчанию для этого правила, запущенного на агентах — перезапуск службы работоспособности управления System Center. Так как такое восстановление по умолчанию включено на агентах, никаких действий пользователя не требуется.

Обратите внимание, что служба работоспособности управления System Center может перезапуститься неправильно, если у учетной записи действия, настроенной для конкретного агента, нет разрешений на перезапуск службы.

В этом случае запустите службу работоспособности управления System Center в Windows.

Если использование ресурсов соответствует объему мониторинга, выполняемого данным агентом, можно изменить пороговое значение или отключить данное правило.

Element properties:

TargetMicrosoft.SystemCenter.Agent
Parent MonitorMicrosoft.SystemCenter.HealthService.ServiceStateRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType
RemotableFalse
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Agent.MonitoringHost.HandleCountThreshold" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.Agent" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="false" Priority="High" TypeID="Microsoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="HandleCountUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="HandleCountOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<ObjectName>Process</ObjectName>
<CounterName>Handle Count</CounterName>
<InstanceName>MonitoringHost*</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>6000</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>