Этот монитор следит, чтобы значение счетчика "Процесс\Число дескрипторов" для процесса HealthService.exe не превышало заданное пороговое значение в ряде последовательных выборок. Если это происходит, монитор переключается в критическое состояние, которое учитывается при последующем формировании состояния монитора "Состояние службы работоспособности". Монитор "Состояние службы работоспособности" настроен таким образом, чтобы при его переключении в критическое состояние запускалась задача восстановления, которая автоматически предпринимает попытку перезапуска службы работоспособности.
Этот базовый монитор отслеживает использование счетчика "Процесс\Число дескрипторов" для процесса HealthService.exe. Если значение счетчика превышает заданное пороговое значение, инициируется процесс восстановления с попыткой перезапуска службы работоспособности, что позволит избежать перегрузки компьютера.
В зависимости от заданной роли службы работоспособности пороговые значения могут быть различными. Ниже представлена сводка по пороговым значениям, используемым по умолчанию.
Роль службы работоспособности | Пороговое число дескрипторов |
Агент | 6,000 |
Сервер управления | 10,000 |
Ниже указана конфигурация процесса восстановления с попыткой перезапуска службы работоспособности:
Роль службы работоспособности | Режим восстановления с перезапуском |
Агент | Включен |
Сервер управления | Отключен |
Краткая сводка потенциальных причин:
Загружено слишком много правил и мониторов из всех пакетов управления, на которые настроена данная служба работоспособности. |
Неправильно настроенное правило или монитор, собирающие или обрабатывающие слишком много данных (например правило сбора показаний счетчика производительности собирает данные каждую секунду) |
Это может быть вызвано тем, что служба работоспособности обслуживает слишком много пакетов управления. Каждый пакет управления может содержать значительное количество средств мониторинга при небольшом количестве используемых ресурсов. При большом числе пакетов управления количество правил и мониторов может доходить до нескольких тысяч. При этом служба работоспособности может начать потреблять больше ресурсов.
Такая ситуация возможна для данной службы работоспособности в зависимости от типа выполняемого ею мониторинга.
Другая причина может заключаться в том, что одно или несколько правил и мониторов не настроены оптимальным образом. Например, правило счетчика производительности, по которому попытки сбора данных производительности предпринимаются каждую секунду. Большое число настроенных таким образом правил и мониторов приводит к тому, что служба работоспособности и связанный с нею процесс начинают потреблять больше ресурсов.
Действие по умолчанию для данного монитора, запущенного на агентах, — перезапуск службы работоспособности. Так как такое восстановление по умолчанию включено на агентах, никаких действий пользователя не требуется.
Если при этом состояние монитора остается критическим, возможно, служба работоспособности перезапущена неправильно или у учетной записи действия, настроенной для данного агента, нет разрешений на перезапуск службы.
В этом случае запустите службу Windows HealthService.
Target | Microsoft.SystemCenter.HealthService |
Parent Monitor | Microsoft.SystemCenter.HealthService.ServiceStateRollup |
Category | PerformanceHealth |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | True |
Monitor Type | Microsoft.SystemCenter.Agent.Performance.ConsecutiveSamplesThreshold.MonitorType |
Remotable | True |
Accessibility | Public |
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.Agent.HealthService.HandleCountThreshold" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.ServiceStateRollup" Remotable="true" Priority="Normal" 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>HealthService</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>120</Frequency>
<NumSamples>5</NumSamples>
<Threshold>6000</Threshold>
<Direction>greater</Direction>
</Configuration>
</UnitMonitor>