Po aktualizacji Fall Creators Update systemu Windows 10 wystąpienie svchost.exe stale wykorzystuje czas procesora


10

Od czasu instalacji aktualizacji Windows 10 Fall Creators Update mam svchost.exeproces, który stale wykorzystuje około 14% czasu procesora:

wykres wykorzystania procesora

Ta svchost.exeinstancja jest odpowiedzialna za hostowanie trzech usług:

Podstawowy silnik filtrujący, CoreMessaging, Windows Defender Firewall

Czas procesora jest zużywany przez wątek wewnątrz tego procesu, którego Process Hacker nie może przypisać żadnej z tych trzech usług:

zrzut ekranu z Process Hacker

Biorąc pod uwagę, że te trzy usługi są uważane za krytyczne usługi systemowe, trudno jest z nimi nic zrobić. Usług tych nie można zatrzymać ani wyłączyć services.msc, a zakończenie procesu uruchamia kontrolę błędów ( CRITICAL_PROCESS_DIED). Wyłączenie Zapory systemu Windows Defender za pomocą interfejsu użytkownika ustawień nie zmniejsza użycia procesora.

Nie mam pomysłów. Co może być tego przyczyną? Jak mogę to dalej debugować? Czy istnieje sposób obejścia tych usług?


Aktualizacja: po debugowaniu za pomocą @HelpingHand odizolowaliśmy to od usługi Zapory systemu Windows Defender. Process Monitor pokazuje, że stale uzyskuje dostęp do rejestru:

zrzut ekranu z Monitora procesów

Eksport CSV z przechwytywania Monitora procesu, przefiltrowanego do tego procesu, jest dostępny tutaj .

Wciąż szukam sposobu na powstrzymanie tego zachowania.


Aktualizacja 2: Analiza za pomocą narzędzia Windows Performance Analyzer pokazuje, że większość czasu procesora jest zużywana przez kod z rpcrt4.dll:

zrzut ekranu z Windows Performance Analyzer


1
Jeśli uruchomisz następujące 2 polecenia w wierszu polecenia administratora i uruchom ponownie; jeśli w ogóle, który proces svchost powoduje wysoki procesor, to: Sc config BFE type= ownwtedySc config MpsSvc type= own
HelpingHand

1
Jak już masz Process Hacker, jeśli znajdziesz proces svchost, na przykład obsługujący BFE. Jeśli klikniesz dwukrotnie nazwę usługi na karcie usług, a następnie przejrzysz kartę zabezpieczeń, pomyślałem, że administratorzy zmodyfikują uprawnienia do konfiguracji. Powyższe działa dla mnie.
HelpingHand

1
Być może możesz teraz uruchomić Process Monitor z filtrem do tego PID. Zobacz, co się pojawi.
HelpingHand

1
Działa to również na moim komputerze. TBH, myślę, że najlepszym rozwiązaniem jest zainstalowanie narzędzi Windows Performance Toolkit - docs.microsoft.com/en-us/windows-hardware/test/wpt . Zasadniczo będziesz używać Windows Performance Recorder do przechwytywania pliku śledzenia i Windows Performance Analyzer do jego analizy. channel9.msdn.com/Shows/Defrag-Tools ma na ten temat kilka dobrych programów.
HelpingHand

1
nie sortuj według modułu. usuń tę kolumnę. również śledzić zdarzenia RPC. pobierz ten plik , uruchom WPRUI.exe, kliknij dodaj profil, wybierz pobrany WPRP, wybierz Profil użycia procesora i Profil użytkowania sieci w obszarze Pomiary niestandardowe. kliknij Start i przechwyć użycie przez 30s. teraz spójrz, który PID ma wysokie użycie procesora, a w ogólnych zdarzeniach filtr wykresu / tabeli dla exe ze zdarzeniami o wysokim zużyciu i RPC i sprawdź, która akcja RPC została wykonana
magicandre1981,

Odpowiedzi:


11

Jak się okazuje, było to związane z Udostępnianiem połączenia internetowego (ICS).

Poniżej chciałbym opisać, jak doszedłem do tego wniosku, mając nadzieję, że pomoże to innym ludziom z podobnymi problemami.


Pierwszym krokiem jest zidentyfikowanie usługi powodującej problemy. Chociaż własny Menedżer zadań Windows również nauczył się tego ostatnio, użyłem Process Hackera, który może również edytować konfigurację usługi.

Dwukrotne kliknięcie naruszającej svchost.exeinstancji i wybranie karty Usługa pokazuje, które usługi działają w tym procesie:

svchost.exe (1688) Właściwości

svchost.exemoże obsługiwać wiele usług systemu Windows jednocześnie, co utrudnia określenie, która usługa powoduje problemy. Podczas gdy najnowsze wersje systemu Windows 10 zwykle izolują usługi, gdy dostępna jest wystarczająca ilość pamięci RAM , niektóre usługi nadal współużytkują proces.

Jest to taki przypadek, a najłatwiejszym sposobem ustalenia, która usługa powoduje problemy, jest ich rozdzielenie.

Process Hacker może to zrobić. W zakładce Service w głównym oknie systemu możemy skonfigurować, czy usługa może współdzielić proces:

Właściwości MpsSvc

Co najmniej dwie z trzech podejrzanych usług należy skonfigurować jako proces własny, aby mieć pewność, że zostaną one rozdzielone w przyszłości.

Najwyraźniej Windows Defender nie lubi użytkowników wtrącających się w konfigurację swojej usługi, więc aby pomyślnie zmienić to ustawienie, musiałem

  • przyznać grupie administratorów pełny dostęp do tej usługi,
  • wyłączyć usługę,
  • uruchom ponownie, aby usługa została zatrzymana (nie można jej zatrzymać osobno),
  • zmień typ usługi na Własny proces i ponownie włącz usługę (ustaw na Auto Start ) i
  • uruchom ponownie po raz ostatni, aby zastosować te zmiany.

Następnie przestępca svchost.exeobsługuje tylko jedną usługę, więc mamy podejrzanego:

Zapora systemu Windows Defender (MpsSvc)

Aby przeanalizować, co dzieje się w usłudze zapory, wykorzystamy narzędzie Windows Performance Recorder i Windows Performance Analyzer, część pakietu Windows ADK .

Zaczniemy od zarejestrowania niektórych danych. Gdy podejrzany svchost.exerzuca się w tle, pobierz ten plik , dodaj go jako profil, skonfiguruj Windows Performance Recorder w ten sposób i rozpocznij nagrywanie:

Rejestrator wydajności systemu Windows: sprawdź Triage pierwszego poziomu i Profil użycia procesora

Pozwól, aby nagranie trwało około 30 sekund, a następnie zapisz nagranie. Po zapisaniu kliknij Otwórz w WPA, aby natychmiast otworzyć go do analizy.

W tym momencie sprawy stają się trudne. W moim przypadku potrzebowałem podpowiedzi z @ magicandre1981, aby szukać w odpowiednim miejscu, w obszarze Aktywność systemuZdarzenia ogólne . Tam liczba zdarzeń RPC wyglądała na podejrzanie wysoką:

46.918 zdarzeń Microsoft-Windows-RPC

Drążąc w dół, Windows Defender Firewall svchost.exebardzo często pojawiał się po stronie serwerawin:Start i win:Stopzdarzeń:

RpcServerCall

Następnym krokiem było ustalenie, kto wysłał te wywołania RPC. Patrząc po stronie klienta, inna svchost.exeinstancja wyglądała podejrzanie:

RpcClientCall

Rzeczywiście, Process Hacker nie mógł wykryć usługi działającej w tym procesie, co również konsekwentnie powodowało obciążenie procesora:

Nazwa grupy usług: netsvcs

W takim przypadku Menedżer zadań Windows zidentyfikował usługę:

Udostępnianie połączenia internetowego (ICS)

Rzeczywiście usługa utknęła w stanie początkowym . Wyłączyłem go, ponieważ go nie potrzebuję, a obciążenie procesora powróciło do normy po następnym ponownym uruchomieniu.


Chciałbym wyrazić moją wdzięczność wobec @HelpingHand i @ magicandre1981, których pomoc w komentarzach umożliwiła to.


Jak później odkryto w poście TenForums , resetowanie Zapory systemu Windows Defender rozwiązuje ten problem.


@HelpingHand: co się stanie, jeśli wyłączysz Internet Connection Sharing (ICS)usługi? Czy WiFi Hotspot nie będzie już opcją?
llinfeng

Jest to nieco łatwiejsze w Process Explorer. Jeśli klikniesz prawym przyciskiem myszy plik „svchost.exe”, który wykorzystuje stałą ilość procesora (w moim przypadku było to 5% stałej) i klikniesz kartę „Usługi”, zobaczysz, które usługi są uruchomione w ramach tego svchost. W tym przypadku miałem tylko jedną, ICS. Podobnie moje udostępnianie połączenia internetowego utknęło w stanie początkowym. Przechodząc do „Firewall i ochrony sieci” mogłem kliknąć „Przywróć zapory do domyślnych” - to natychmiast rozwiązało mój problem.
Howard Lince III

@ Howard: Uważaj się za szczęściarza - jedną z komplikacji burmistrza były dla mnie trzy serwisy, które dzielą problematyczne przypadki svchost.exe, co utrudnia identyfikację usługi, która to powoduje. Nie jestem pewien, dlaczego nie współużytkowali procesu hosta w twojej instancji.
fefrei

2

To jest prostsze, odniosłem sukces, resetując ustawienia Zapory systemu Windows (szczególnie jeśli występuje podobny wzrost obciążenia procesora), postępując zgodnie z następującymi instrukcjami: -

Zresetowanie Zapory systemu Windows Defender do ustawień domyślnych rozwiązało problem.

Aby to zrobić, otwórz Ustawienia -> Aktualizacja i zabezpieczenia -> Windows Defender -> Otwórz Centrum zabezpieczeń Windows Defender -> Zapora sieciowa i ochrona sieci -> Przywróć domyślne ustawienia zapory

Mam nadzieję, że to pomaga i działa na kogoś innego ... Wydaje się, że jest to dość rozpowszechniony problem.


1
Rzeczywiście, zadziałało to również dla mnie, jak wspomniałem na samym dole mojej odpowiedzi. Dzięki za kopię tego kroku tutaj!
fefrei

0

W moim przypadku po wypróbowaniu różnych nieudanych poprawek (w tym niektórych z powyższych sugestii, np. Zresetowaniu Zapory systemu Windows), wyłączyłem „Diagnostyczną zasadę usługi” i w końcu procesor przestał działać. To może nie być idealne rozwiązanie, ale nie wydaje się być usługą krytyczną. Oto jak to wyłączyć:

  1. Otwórz „Konfiguracja systemu” („msconfig.exe”) jako administrator
  2. Karta Ogólne: wybierz „Uruchamianie selektywne”
  3. Karta Usługi: odznacz „Usługa zasad diagnostycznych”
  4. Uruchom ponownie system Windows

Dzięki kanałowi YouTube Ranga Rajesh Kumar za skierowanie mnie do tego rozwiązania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.