Після оновлення Windows 10 Fall Creators Update екземпляр svchost.exe постійно використовує час процесора


10

З моменту встановлення оновлення Windows 10 Fall Creators, у мене є svchost.exeпроцес, який постійно використовує близько 14% часу процесора:

графік використання процесора

Цей svchost.exeпримірник відповідає за розміщення трьох служб:

Базовий механізм фільтрації, CoreMessaging, брандмауер Windows Defender

Час процесора споживається потоком всередині цього процесу, який Process Hacker не може віднести до жодної з цих трьох служб:

скріншот від Process Hacker

Зважаючи на те, що ці три сервіси вважаються критичними системними службами, важко нічого з цим зробити. Ці послуги не можуть бути зупинені або відключені services.msc, а припинення процесу запускає помилку ( CRITICAL_PROCESS_DIED). Відключення брандмауера Windows Defender через інтерфейс налаштувань не зменшує використання процесора.

Мені немає ідеї. Що може бути причиною цього? Як я можу це налагодити далі? Чи існує рішення, щоб зупинити ці послуги?


Оновлення: Після деякої налагодження за допомогою @HelpingHand ми виділили це службою брандмауера Windows Defender. Монітор процесів показує, що він постійно отримує доступ до реєстру:

скріншот від Process Monitor

Експорт CSV захоплення монітора процесів, відфільтрованого до цього процесу, доступний тут .

Я все ще шукаю спосіб зупинити таку поведінку.


Оновлення 2: Аналіз за допомогою аналізатора продуктивності Windows показує, що більшість часу процесора витрачається на код з rpcrt4.dll:

скріншот від аналізатора продуктивності Windows


1
Якщо ви виконаєте наступні 2 команди в запиті адміністратора та перезапустіть; якщо такий є, який процес Sc config BFE type= ownSc config MpsSvc type= own
svchost

1
Як у вас вже є процес Hacker, якщо ви знайдете, наприклад, svchost процес, який розміщує BFE. Якщо ви двічі клацніть на ім'я служби на вкладці "Сервіси", то перегляньте вкладку "Захист", я б подумав, що адміністратори змінять права конфігурації. Сказане працює для мене.
HelpingHand

1
Можливо, тепер ви можете запустити Монітор процесів, відфільтрований до цього PID. Подивіться, що з’являється.
HelpingHand

1
Це робиться і на моєму комп’ютері. TBH, я вважаю, що найкраще ставити інструменти інструментарію Windows Performance Toolkit - docs.microsoft.com/en-us/windows-hardware/test/wpt . По суті, ви будете використовувати Windows Recorder Recorder, щоб захопити файл сліду, і Windows Performance Analyzer для його аналізу. канал9.msdn.com/Shows/Defrag-Tools має кілька хороших шоу з цього приводу.
HelpingHand

1
не сортувати за модулем видаліть цей стовпець. також простежити події RPC. завантажте цей файл , запустіть WPRUI.exe, натисніть на додавання профілю, виберіть завантажений WPRP, виберіть профіль користування процесором та профіль користування мережею у розділі Спеціальні вимірювання. натисніть на старт та захопіть використання протягом 30х. тепер подивіться, який PID має високий рівень використання процесора та в загальних фільтрах графіків / таблиць подій для exe з подіями високого використання та RPC, і подивіться, які дії RPC виконуються
magicandre1981

Відповіді:


11

Як виявляється, це було пов’язано із спільним доступом до Інтернету (ICS).

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


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

Подвійне клацання svchost.exeекземпляра, який порушує праворуч, та вибору вкладки " Сервіс" показує, які служби працюють у цьому процесі:

svchost.exe (1688) Властивості

svchost.exeможе розміщувати багато служб Windows одночасно, тому важко визначити, яка служба спричиняє проблеми. Незважаючи на те, що останні версії Windows 10, як правило, ізолюють сервіси, коли доступна достатня кількість оперативної пам’яті , деякі служби все ще поділяють процес.

Це такий випадок, і найпростіший спосіб визначити, яка служба викликає проблеми - це відокремити їх.

Хакер процесів може це зробити. На вкладці Сервіс головного вікна ми можемо налаштувати, чи може служба може ділитися процесом:

Властивості MpsSvc

Щонайменше дві з трьох підозрілих служб потрібно налаштувати як власний процес, щоб переконатися, що вони в майбутньому відокремлені.

Мабуть, Windows Defender не любить користувачів, що втручаються в конфігурацію його служби, тому для успішного зміни цього параметра мені потрібно було

  • надати Адміністратори групи повного доступу на цю послугу,
  • відключити послугу,
  • перезавантажте, щоб послуга була зупинена (її неможливо зупинити окремо),
  • змінити тип послуги на власний процес та знову включити послугу (встановити її на автоматичний запуск ) та
  • перезавантажте останній раз, щоб застосувати ці зміни.

Після цього правопорушник svchost.exeрозміщує лише одну службу, тому у нас є підозрюваний:

Брандмауер Windows Defender (MpsSvc)

Щоб проаналізувати, що відбувається всередині служби брандмауера, ми будемо використовувати інструмент запису продуктивності Windows та аналізатор продуктивності Windows, що є частиною Windows ADK .

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

Записувач продуктивності Windows: перевірте тріад першого рівня та профіль використання процесора

Нехай запис триває 30 секунд або близько того, а потім збережіть запис. Після збереження натисніть Відкрити в WPA, щоб негайно відкрити його для аналізу.

Ось де все починає хитріше. У моєму випадку мені знадобився підказка від @ magicandre1981, щоб шукати потрібне місце під розділом Системна діяльністьЗагальні події . Там кількість подій RPC виглядала підозріло високою:

46.918 події Microsoft-Windows-RPC

Буріння вниз, Захисник Windows , міжмережевий екран svchost.exeвідображалося багато на сервері стороні win:Startі win:Stopподій:

RpcServerCall

Наступним кроком було з’ясування того, хто надсилав ці дзвінки RPC. Дивлячись на сторону клієнта, інший svchost.exeекземпляр виглядав підозріло:

RpcClientCall

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

Назва групи послуг: netsvcs

У цьому випадку менеджеру завдань Windows вдалося визначити службу:

Спільний доступ до Інтернету (ICS)

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


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


Як пізніше було виявлено у публікації TenForums , скидання брандмауера Windows Defender виправляє цю проблему.


@HelpingHand: що станеться, якщо вимкнути Internet Connection Sharing (ICS)послуги? Чи стане точкою доступу Wi-Fi більше не варіант?
llinfeng

Це трохи простіше в Process Explorer. Якщо ви клацніть правою кнопкою миші на "svchost.exe", який використовує постійну кількість процесора (у моєму випадку 5% константа), і натисніть на вкладку "Послуги", ви побачите, які послуги працюють під цим svchost. У мене був лише один в цьому випадку, ICS. Точно так само моє спільне використання Інтернет-зв'язку було затримане у початковому стані. Перейшовши на "Брандмауер та мережевий захист", я зміг натиснути "Відновити брандмауері до типових" - це миттєво вирішило мою проблему.
Говард Лінс III

@Howard: Подумайте, що пощастило - одним із ускладнень мера для мене були три служби, що ділилися проблемним екземпляром svchost.exe, що ускладнювало ідентифікацію служби, яка викликала це. Я не впевнений, чому вони не поділили хост-процес у вашому випадку.
fefrei

2

Це простіше, я мав успіх, скинувши їхні налаштування брандмауера Windows (особливо, якщо пов'язаний сплеск завантаження процесора), використовуючи ці вказівки: -

Відновлення брандмауера Windows Defender до налаштувань за замовчуванням вирішило проблему.

Для цього відкрийте Налаштування -> Оновлення та безпека -> Windows Defender -> Відкрийте Центр безпеки Windows Defender -> Брандмауер та мережевий захист -> Відновити налаштування брандмауера за замовчуванням.

Сподіваюсь, це допомагає і працює для когось іншого ... Здається, це досить поширене питання.


1
Дійсно, це теж працювало для мене, про що я згадував у самому дні своєї відповіді. Дякуємо за дзеркальне відображення кроків тут!
fefrei

0

У моєму випадку, спробувавши різні невдалі виправлення (включаючи деякі з перерахованих вище пропозицій, наприклад, скидання брандмауера Windows), я відключив «Діагностичну політику служби», і вимкнення процесора остаточно припинилося. Це може бути не ідеальним рішенням, але це не здається критичною послугою. Ось як її відключити:

  1. Відкрийте "Конфігурація системи" ('msconfig.exe') як адміністратор
  2. Вкладка Загальні: виберіть "Вибірковий запуск"
  3. Вкладка Послуги: зніміть прапорець "Діагностична політика служби"
  4. Перезавантажте Windows

Завдяки каналу YouTube Ranga Rajesh Kumar, який вказав мені на це рішення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.