Вопрос или проблема
NetSetupSvc – это вспомогательная служба для установки сетевых драйверов и управления низкоуровневыми сетевыми настройками. Она запускается по требованию через RPC и автоматически останавливается через 3 секунды. В обычном режиме эта служба никогда не используется. В моем случае она, похоже, запускается только резервным копированием и мониторингом.
На всех серверах HPE ProLiant, которые я проверил, я заметил, что системный журнал записывает запуск и остановку службы каждые 6 минут и 3 секунды, а затем снова запускает ее через несколько секунд. Это генерирует около 500 дополнительных записей в журнале в день и удваивает объем ведения журнала на этих серверах. Это существенно снижает время хранения журнала (с 1 года до 3 месяцев) и загромождает системный журнал.
Причина в этом – служба управления без агента (AMS), которая опрашивает состояние системы каждые 2 минуты (с 10 секунд до 10 минут настраиваемо), чтобы iLO BMC мог отображать его и передавать через SNMP. Среди прочего, она собирает информацию о MAC, ip/подсети, VLAN и группировке портов, запрашивая WMI, которая, похоже, использует NetSetupSvc для ответов на эти запросы.
Мои идеи о том, как с этим справиться:
- Предотвратить остановку службы сетевой настройки при бездействии. – Нет задокументированного способа сделать это. Служба все равно останавливается, даже если установлена на автоматический запуск.
- Исключить диспетчер управления службами из сбора журналов для системного журнала. – Это должно быть возможным, где-то, но это полностью заглушит всю активность служб, что может затруднить устранение неполадок системы.
- Отключить службу управления без агента. – Можно сделать, если функции мониторинга не нужны. Это вызывает отображение серой информационной панели в различных меню iLO.
- Попросить HPE изменить их программное обеспечение для мониторинга. – Я не смог найти информацию о том, можно ли получить это состояние сетевого уровня каким-либо другим способом.
В этом в основном ошибка Windows. Изначально службы были всегда включены, и их запуска и остановки во время работы системы считались необычными и стоили записи. Позже оптимизация ресурсов изменила различные службы на ручной запуск/остановку через планировщик задач и триггерные события. Это создало шум в ведении журнала и сделало устранение неполадок неудобным (без написания пользовательских XML-фильтров поиска). Я заметил, что в Windows 11 сообщения о запуске/остановке службы полностью исчезли.
Декодирование NetSetupSvc.dll!NetSetupService::Initialize() показывает, что она проверяет “HKLM\System\CurrentControlSet\Control\NetworkSetup2\Parameters” на наличие необязательной настройки ‘NetSetupSvcIdleTimeout’ и по умолчанию устанавливает значение ‘3’, если не найдено. Если я использую права TrustedInstaller для записи этой настройки и устанавливаю ее на 0xffffffff, служба никогда не останавливается. Это один из способов решения проблемы на уровне ОС, и этот подход может быть применим и к другим службам.
Поддержка HPE сообщила мне, что AMS имеет ряд необязательных недокументированных ключей реестра в “Services\hpeams\Parameters”. Вы можете увидеть их в exe или через ProcMon при запуске. Предложенный ключ – ‘EnableNetworkWatcher=0’. Также есть ‘EnableCPQNIC=0’ с аналогичным поведением. Это позволяет отключить проблемную часть и не отключать всю службу.
AMS имеет задокументированную запись реестра под названием ‘PollInterval’, которая по умолчанию составляет 120 секунд. Изменение этого значения показывает, что опрос сети работает на своем собственном жестко запрограммированном таймере на 120 секунд и, вероятно, использует свою собственную WMI-ручку, и журнал WMI-активности показывает, что основной цикл случайно оставляет открытую ручку набора результатов WMI. Эти два перекрывающихся интервала, похоже, предотвращают остановку NetSetupSvc, если значение PollInterval установлено на 110 или ниже. Это будет работать, пока этот баг не будет исправлен.
Ответ или решение
Проблема с частыми запусками и остановками службы NetSetupSvc в Windows
Введение
На вашем сервере HPE ProLiant наблюдается частый запуск и остановка службы Windows Network Setup Service (NetSetupSvc), что создает излишний объем записей в системном журнале. Служба, как известно, отвечает за установку сетевых драйверов и управление настройками сети на низком уровне. Рассмотрим причины, механизмы работы службы и возможные решения данной проблемы.
Причины проблемы
Служба NetSetupSvc, как правило, не активируется в условиях нормальной эксплуатации сервера и запускается по запросу через RPC. В вашем случае наблюдается, что служба активируется каждые 6 минут и 3 секунды, и это событие ассоциировано с работой Agentless Management Service (AMS), который выполняет опрос состояния системы для отображения информации в микропроцессоре базовой системы ввода-вывода (BMC) iLO и передачи данных через SNMP.
AMS запрашивает информацию о MAC, IP/сети, VLAN и команды портов через WMI, и именно это вызывает запуск службы NetSetupSvc.
Анализ текущих решений
Вы предложили несколько вариантов решения проблемы:
-
Предотвращение остановки службы NetSetupSvc. Действительно, в документации нет упоминания о методах, позволяющих избежать остановки службы, даже если установка режима «Автоматически».
-
Исключение записей службы в системном журнале. Хотя это возможно, данный подход затушит все события, связанные с работой службы контроля. Это будет серьезным препятствием для диагностики других возможных проблем.
-
Отключение Agentless Management Service. Это решение эффективно при отсутствии необходимости в мониторинге, однако оно приведет к отображению серой информационной панели в меню iLO, что может усложнить использование системы.
-
Модификация программного обеспечения HPE. Вы правильно отметили, что вряд ли существует документация, описывающая другие способы получения низкоуровневого сетевого состояния, поэтому данный вариант может быть сложным для реализации.
Новые подходы к решению
Как вы упомянули, в процессе декомпиляции библиотеки NetSetupSvc.dll прослеживается, что служба обращается к ключу реестра HKLM\System\CurrentControlSet\Control\NetworkSetup2\Parameters
в поисках параметра NetSetupSvcIdleTimeout
. Установка этого значения в 0xffffffff
путем использования прав TrustedInstaller устраняет проблему остановки службы.
HPE поддержка также указала на наличие рядопараметров в реестре для AMS, таких как EnableNetworkWatcher=0
и EnableCPQNIC=0
, которые могут помочь сократить количество вызовов к NetSetupSvc, не деактивируя сам AMS.
Кроме того, можно управлять интервалом опроса AMS, изменив значение PollInterval
, которое по умолчанию составляет 120 секунд. Понижение этого времени может помочь снизить количество вызовов к NetSetupSvc, однако это временное решение, пока не будет устранена текущая ошибка в AMS.
Заключение
Таким образом, проблема с частыми запусками и остановками службы NetSetupSvc является следствием взаимодействий между Agentless Management Service и сетевыми запросами. Подходы к решению проблемы варьируются от изменения конфигурации реестра до доработки самого AMS. Важно отметить, что понимание внутренней работы службы и ее зависимости позволит вам лучше справляться с подобными ситуациями в будущем.