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

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

Этот монитор проверяет, не превышает ли среднее значение счетчика "Процесс\Число дескрипторов" для процесса MonitoringHost.exe указанное пороговое значение. При достижении этого порогового значения автоматически инициируется восстановление для перезапуска службы работоспособности.

Knowledge Base article:

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

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

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

Роль службы работоспособности

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

Агент

2,000

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

10,000

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

Роль службы работоспособности

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

Агент

Включено

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

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

Причины

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

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

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

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

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

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

Устранение

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

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

В этом случае запустите службу Windows HealthService.

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

Element properties:

TargetMicrosoft.SystemCenter.Agent
Parent MonitorMicrosoft.SystemCenter.HealthService.ServiceStateRollup
CategoryStateCollection
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeMicrosoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState
RemotableFalse
AccessibilityInternal
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Agent.MonitoringHost.HandleCountThreshold" Accessibility="Internal" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.Agent" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="false" Priority="High" TypeID="Microsoft.SystemCenter.Agent.Performance.AveragerThresholdWithSingleSampleSuccessState" ConfirmDelivery="false">
<Category>StateCollection</Category>
<OperationalStates>
<OperationalState ID="HandleCountUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="HandleCountOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ObjectName>Process</ObjectName>
<CounterName>Handle Count</CounterName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>2000</Threshold>
</Configuration>
</UnitMonitor>