После обновления Windows 10 Fall Creators экземпляр svchost.exe постоянно использует процессорное время

7143
fefrei

После установки Windows 10 Fall Creators Update у меня есть svchost.exeпроцесс, который постоянно использует около 14% процессорного времени:

graph of CPU utilization

Этот svchost.exeэкземпляр отвечает за размещение трех служб:

Base Filtering Engine, CoreMessaging, Windows Defender Firewall

Время ЦП расходуется потоком внутри этого процесса, который Process Hacker не может отнести ни к одной из этих трех служб:

screenshot from Process Hacker

Учитывая, что эти три службы считаются критическими системными службами, с ними трудно что-либо делать. Эти сервисы не могут быть остановлены или отключены services.msc, и завершение процесса вызывает bugcheck ( CRITICAL_PROCESS_DIED). Отключение брандмауэра Защитника Windows через пользовательский интерфейс настроек не снижает загрузку ЦП.

У меня нет идей. Что может быть причиной этого? Как я могу отладить это дальше? Есть ли обходной путь, чтобы остановить эти службы?


Обновление: после некоторой отладки с помощью @HelpingHand мы изолировали это для службы брандмауэра Защитника Windows. Process Monitor показывает, что он постоянно обращается к реестру:

screenshot from Process Monitor

CSV-экспорт записи Process Monitor, отфильтрованной по этому процессу, доступен здесь .

Я все еще ищу способ остановить это поведение.


Обновление 2: анализ с помощью анализатора производительности Windows показывает, что большая часть времени ЦП расходуется кодом из rpcrt4.dll:

screenshot from Windows Performance Analyzer

10
Если вы выполните следующие 2 команды в командной строке администратора и перезапустите; если есть, какой процесс svchost вызывает высокую загрузку ЦП, то: `Sc config BFE type = own`, затем` Sc config MpsSvc type = own` HelpingHand 6 лет назад 1
Выполнение любой из этих команд возвращает `[SC] OpenService FAILED 5: Доступ запрещен`, несмотря на запуск в командной строке администратора. fefrei 6 лет назад 0
Поскольку у вас уже есть Process Hacker, если вы обнаружите процесс svchost, на котором размещается BFE, например. Если дважды щелкнуть имя службы на вкладке «Службы», а затем просмотреть вкладку «Безопасность», я бы подумал, что администраторы могут изменить права конфигурации. Вышесказанное работает для меня. HelpingHand 6 лет назад 1
Интересно, что я смог предоставить администраторам права на изменение конфигурации служб (я думал, что это были [защищенные службы] (https://msdn.microsoft.com/en-us/library/windows/desktop/dn313124 (v = vs. 85) .aspx) это не позволяло). После перезагрузки выделялась виновная сторона: `MpsSvc`, также известный как брандмауэр Защитника Windows. На шаг ближе, спасибо! fefrei 6 лет назад 0
Возможно, теперь вы можете запустить Process Monitor с его фильтром по этому PID. Посмотрите, что появляется. HelpingHand 6 лет назад 1
Это также сработало и выглядело довольно повторяющимся. Я отредактировал результаты в свой вопрос. fefrei 6 лет назад 0
Так же и на моем компьютере. TBH, я думаю, что вам лучше всего установить инструменты Windows Performance Toolkit - https://docs.microsoft.com/en-us/windows-hardware/test/wpt/. По сути, вы будете использовать Windows Performance Recorder для захвата файла трассировки и Windows Performance Analyzer для его анализа. https://channel9.msdn.com/Shows/Defrag-Tools имеет несколько хороших шоу по этим вопросам. HelpingHand 6 лет назад 1
@fefrei - вместо того, чтобы включать разрешение / ответ в свой вопрос, вы должны отправить ответ. Ramhound 6 лет назад 0
@Ramhound Это не ответ, просто некоторые подсказки на пути к ответу. Процесс все еще работает и жрет процессорное время. Я постараюсь уточнить это. fefrei 6 лет назад 0
Я понял, что когда служба запускается вручную, она не начинает загружать процессор. В качестве обходного пути я не настроил запуск службы вручную. Он по-прежнему запускается автоматически (возможно, потому что запускает его какая-то другая служба), но при этом он запускается достаточно поздно, чтобы не вызывать проблем. Weird! fefrei 6 лет назад 0
не сортировать по модулю. удалить этот столбец. также отслеживать события RPC. [скачать этот файл] (https://raw.githubusercontent.com/MicrosoftEdge/Elevator/master/ElevatorServer/DefaultTraceProfile.wprp), запустите WPRUI.exe, нажмите «Добавить профиль», выберите загруженный WPRP, выберите «Профиль использования ЦП и Сеть». Профиль использования под Пользовательские измерения. нажмите на старт и захватить использование в течение 30 с. Теперь посмотрите, какой PID имеет высокую загрузку процессора и в общем фильтре графиков / таблиц событий для exe-файлов с высокой нагрузкой и RPC-событиями, и посмотрите, какое действие rpc выполнено. magicandre1981 6 лет назад 1
Дополнительную информацию об этой высокой загрузке CPU с проблемой FCU можно найти здесь, https://www.tenforums.com/general-support/95844-fall-update-v-1709-creates-problems-cpu-usage-desktop-wallpaper- 4.html. Adrian 6 лет назад 1
@Adrian: Спасибо за эту ссылку! @ magicandre1981: Спасибо! Если я правильно интерпретирую вывод, `MpsSvc` имеет тысячи событий` Microsoft-Windows-RPC / RpcServerCall / win: Start` и `win: Stop`. Клиентская часть этих запросов является экземпляром `svchost.exe`, на котором размещена сервисная группа` netsvcs`, согласно Process Hacker. Диспетчер задач идентифицирует это как общий доступ к подключению к Интернету, который действительно потребляет мощность процессора и застревает в * Запуск * (раньше этого не замечал). fefrei 6 лет назад 0
если вы не используете Internet Sharing, установите тип запуска ICS на «по требованию» или отключен. magicandre1981 6 лет назад 1
Я установил его на отключено. После перезагрузки это волшебным образом изменилось на «Manual (Trigger Start)», но все * успокоилось *. Ура! Хотя это и не является основной причиной, ваши подсказки абсолютно ответили на мой вопрос о том, что делал сервис, и привели к обходному пути, который мне подходит. Не могли бы вы опубликовать свои подсказки в качестве ответа, чтобы я мог их принять? fefrei 6 лет назад 0
Вы обнаружили 95% самостоятельно. Я только дал вам маленький намек. Опубликуйте свою находку в качестве ответа. magicandre1981 6 лет назад 1

2 ответа на вопрос

9
fefrei

Как оказалось, это было связано с общим подключением к Интернету (ICS).

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


Первым шагом является определение службы, вызывающей проблемы. Хотя собственный диспетчер задач Windows также научился делать это недавно, я использовал Process Hacker, который также может редактировать конфигурацию службы.

Двойной щелчок svchost.exeэкземпляра- нарушителя и выбор вкладки « Служба » показывает, какие службы работают внутри этого процесса:

svchost.exe (1688) Properties

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

Это такой случай, и самый простой способ определить, какая служба вызывает проблемы, - это разделить их.

Process Hacker может сделать это. На вкладке « Сервис » его главного окна мы можем настроить, может ли сервис совместно использовать процесс:

MpsSvc Properties

По крайней мере, две из трех подозрительных служб должны быть настроены как собственные процессы, чтобы обеспечить их разделение в будущем.

Судя по всему, Защитнику Windows не нравятся пользователи, вмешивающиеся в конфигурацию своей службы, поэтому для успешного изменения этого параметра мне нужно было

  • предоставить Администраторы группы полного доступа на эту услугу,
  • отключить услугу,
  • перезагрузиться, чтобы служба была остановлена ​​(ее нельзя остановить отдельно),
  • измените тип службы на « Собственный процесс» и снова включите службу (установите « Автозапуск» ) и
  • перезагрузите в последний раз, чтобы применить эти изменения.

После этого нарушитель svchost.exeразмещает только один сервис, поэтому у нас есть подозрение:

Windows Defender Firewall (MpsSvc)

Чтобы проанализировать, что происходит внутри службы брандмауэра, мы будем использовать средство записи производительности Windows и средство анализа производительности Windows, входящее в состав Windows ADK .

Мы начнем с записи некоторых данных. Пока подозреваемый svchost.exeперемещается в фоновом режиме, загрузите этот файл, добавьте его в качестве профиля, настройте Windows Performance Recorder следующим образом и начните запись:

Windows Performance Recorder: check First level triage and CPU Usage Profile

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

Это где вещи начинают становиться сложнее. В моем случае мне нужно было получить подсказку от @ magicandre1981, чтобы найти ее в нужном месте в разделе « Системная активность» → « Общие события» . Там число событий RPC выглядело подозрительно высоким:

46.918 Microsoft-Windows-RPC events

Развернувшись, брандмауэр Защитника Windows svchost.exeобнаружил много на стороне сервераwin:Start и win:Stopсобытий:

RpcServerCall

Следующим шагом было выяснение, кто послал эти вызовы RPC. Посмотрев на клиентскую сторону, другой svchost.exeэкземпляр выглядел подозрительно:

RpcClientCall

Действительно, Process Hacker не смог обнаружить службу, запущенную внутри этого процесса, что также постоянно вызывало нагрузку на процессор:

Service group name: netsvcs

В этом случае диспетчеру задач Windows удалось определить службу:

Internet Connection Sharing (ICS)

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


Я хотел бы выразить свою благодарность @HelpingHand и @ magicandre1981, чья помощь в комментариях сделала это возможным.


Как позже было обнаружено в посте TenForums, сброс брандмауэра Защитника Windows устраняет эту проблему.

@HelpingHand: что произойдет, если отключить службы «Общий доступ к Интернету» (ICS)? Будет ли WiFi Hotspot больше не вариант? llinfeng 6 лет назад 0
Это немного проще в Process Explorer. Если вы щелкнете правой кнопкой мыши по «svchost.exe», который использует постоянную загрузку процессора (в моем случае это 5% -ная константа), и перейдите на вкладку «Службы», вы увидите, какие службы работают под этой svchost. У меня был только один в этом случае, ICS. Аналогично, мой общий доступ к Интернету застрял в исходном состоянии. Зайдя в «Брандмауэр и защита сети», я смог нажать «Восстановить брандмауэры по умолчанию» - это сразу решило мою проблему. Howard Lince III 6 лет назад 0
@ Ховард: Считай, что тебе повезло - одним из осложнений мэра для меня стали три службы, использующие проблемный экземпляр `svchost.exe`, что затрудняет идентификацию службы, вызывающей это. Я не уверен, почему они не поделились хост-процессом в вашем случае. fefrei 6 лет назад 0
3
Mohamad Osama

Это проще, я добился успеха, сбросив настройки брандмауэра Windows (особенно, если есть связанный скачок в загрузке процессора), используя следующие инструкции: -

Сброс брандмауэра Защитника Windows к настройкам по умолчанию решил проблему.

Для этого откройте Настройки -> Обновление и безопасность -> Защитник Windows -> Открыть Центр безопасности Защитника Windows -> Брандмауэр и защита сети -> Восстановить настройки брандмауэра по умолчанию

Надеюсь, что это помогает и работает для кого-то еще ... Похоже, довольно распространенная проблема.

Действительно, это также сработало для меня, как я упоминал в самом низу моего ответа. Спасибо за отражение шагов здесь! fefrei 6 лет назад 1