Nach dem Windows 10 Fall Creators Update verwendet eine svchost.exe-Instanz ständig die CPU-Zeit

10

Seit der Installation des Windows 10 Fall Creators-Updates habe ich einen svchost.exeProzess, der ständig etwa 14% der CPU-Zeit beansprucht:

Grafik der CPU-Auslastung

Diese svchost.exeInstanz ist für das Hosting von drei Diensten verantwortlich:

Basisfilter-Engine, CoreMessaging, Windows Defender-Firewall

Die CPU-Zeit wird von einem Thread in diesem Prozess verbraucht, den Process Hacker keinem dieser drei Dienste zuordnen kann:

Screenshot von Process Hacker

Angesichts der Tatsache, dass diese drei Dienste als kritische Systemdienste betrachtet werden, ist es schwierig, etwas dagegen zu unternehmen. Diese Dienste können nicht von gestoppt oder deaktiviert werden services.msc, und das Beenden des Prozesses löst einen Bugcheck ( CRITICAL_PROCESS_DIED) aus. Durch Deaktivieren der Windows Defender-Firewall über die Einstellungsoberfläche wird die CPU-Auslastung nicht verringert.

Ich habe keine Ideen mehr. Was könnte das verursachen? Wie kann ich das weiter debuggen? Gibt es eine Problemumgehung, um diese Dienste zu beenden?


Update: Nach einigem Debuggen mit @HelpingHand haben wir dies für den Windows Defender Firewall-Dienst isoliert. Process Monitor zeigt an, dass ständig auf die Registrierung zugegriffen wird:

Screenshot vom Prozessmonitor

Ein CSV - Export eines Process Monitor zu erfassen, zu diesem Prozess gefiltert, ist verfügbar hier .

Ich suche immer noch nach einer Möglichkeit, dieses Verhalten zu stoppen.


Update 2: Die Analyse mit dem Windows Performance Analyzer zeigt, dass der größte Teil der CPU-Zeit von Code verbraucht wird aus rpcrt4.dll:

Screenshot von Windows Performance Analyzer

fefrei
quelle
1
Wenn Sie die folgenden 2 Befehle in einer Admin-Eingabeaufforderung ausführen und neu starten; Wenn überhaupt, welcher svchost-Prozess verursacht die hohe CPU dann: Sc config BFE type= owndannSc config MpsSvc type= own
HelpingHand
1
Wie Sie Process Hacker bereits haben, wenn Sie den svchost-Prozess finden, der beispielsweise BFE hostet. Wenn Sie auf der Registerkarte "Dienste" auf den Dienstnamen doppelklicken und dann die Registerkarte "Sicherheit" anzeigen, hätte ich gedacht, dass Administratoren die Konfigurationsrechte ändern würden. Das obige funktioniert für mich.
HelpingHand
1
Vielleicht können Sie jetzt Process Monitor ausführen, wobei es auf diese PID gefiltert ist. Sehen Sie, was auftaucht.
HelpingHand
1
Das funktioniert auch auf meinem Computer. TBH, ich denke, Ihre beste Wahl ist die Installation der Windows Performance Toolkit-Tools - docs.microsoft.com/en-us/windows-hardware/test/wpt . Im Wesentlichen verwenden Sie Windows Performance Recorder, um eine Tracedatei zu erfassen, und Windows Performance Analyzer, um sie zu analysieren. channel9.msdn.com/Shows/Defrag-Tools hat einige gute Shows auf diesen.
HelpingHand
1
Nicht nach Modulen sortieren. Entfernen Sie diese Spalte. Verfolgen Sie auch die RPC-Ereignisse. Laden Sie diese Datei herunter , führen Sie WPRUI.exe aus, klicken Sie auf Profil hinzufügen, wählen Sie das heruntergeladene WPRP aus, wählen Sie unter Benutzerdefinierte Messungen das CPU-Nutzungsprofil und das Netzwerk-Nutzungsprofil aus. Klicken Sie auf Start und erfassen Sie die Nutzung für 30s. Schauen Sie jetzt, welche PID die hohe CPU-Auslastung hat und in generischen Ereignissen Grafik- / Tabellenfilter für die Exe mit der hohen Auslastung und RPC-Ereignissen und welche RPC-Aktion ausgeführt wird
magicandre1981

Antworten:

10

Wie sich herausstellte, hing dies mit der gemeinsamen Nutzung von Internetverbindungen (Internet Connection Sharing, ICS) zusammen.

Im Folgenden möchte ich beschreiben, wie ich zu diesem Schluss gekommen bin, in der Hoffnung, dass es anderen Menschen mit ähnlichen Problemen hilft.


Der erste Schritt besteht darin, den Dienst zu identifizieren, der Probleme verursacht. Während der Windows-eigene Task-Manager dies kürzlich ebenfalls gelernt hat, habe ich Process Hacker verwendet, mit dem auch die Konfiguration eines Dienstes bearbeitet werden kann.

Durch Doppelklicken auf die fehlerhafte svchost.exeInstanz und Auswählen der Registerkarte " Dienst" wird angezeigt, welche Dienste in diesem Prozess ausgeführt werden:

Eigenschaften von svchost.exe (1688)

svchost.exekann viele Windows-Dienste gleichzeitig hosten, wodurch es schwierig wird, festzustellen, welcher Dienst Probleme verursacht. Während neuere Versionen von Windows 10 normalerweise Dienste isolieren, wenn genügend RAM verfügbar ist , teilen sich einige Dienste immer noch einen Prozess.

Dies ist ein solcher Fall, und der einfachste Weg, um festzustellen, welcher Dienst Probleme verursacht, besteht darin, sie zu trennen.

Process Hacker kann dies tun. Auf der Registerkarte " Dienst" des Hauptfensters können wir konfigurieren, ob ein Dienst einen Prozess gemeinsam nutzen kann:

MpsSvc-Eigenschaften

Mindestens zwei der drei verdächtigen Dienste müssen als eigener Prozess konfiguriert werden , um sicherzustellen, dass sie in Zukunft getrennt werden.

Anscheinend mag Windows Defender es nicht, wenn Benutzer sich in die Konfiguration seines Dienstes einmischen. Um diese Einstellung erfolgreich zu ändern, musste ich dies tun

  • gewähren die Administratoren Gruppe Vollzugriff auf diesen Dienst,
  • Dienst deaktivieren,
  • Neustart, damit der Dienst gestoppt wird (er kann nicht separat gestoppt werden),
  • Ändern Sie den Diensttyp in Eigener Prozess und aktivieren Sie den Dienst erneut (setzen Sie ihn auf Automatisch starten ) und
  • Starten Sie ein letztes Mal neu, um diese Änderungen zu übernehmen.

Danach svchost.exehostet die Straftat nur noch einen einzigen Dienst, sodass wir einen Verdächtigen haben:

Windows Defender Firewall (MpsSvc)

Um zu analysieren, was im Firewall-Dienst vor sich geht, verwenden wir den Windows Performance Recorder und das Windows Performance Analyzer-Tool, die Teil des Windows ADK sind .

Wir beginnen mit der Aufzeichnung einiger Daten. svchost.exeLaden Sie diese Datei herunter , während der Verdächtige im Hintergrund mitspielt , fügen Sie sie als Profil hinzu, richten Sie Windows Performance Recorder wie folgt ein und starten Sie eine Aufzeichnung:

Windows Performance Recorder: Überprüfen Sie die Triage der ersten Ebene und das CPU-Nutzungsprofil

Lassen Sie die Aufnahme etwa 30 Sekunden lang laufen und speichern Sie sie dann. Klicken Sie nach dem Speichern auf In WPA öffnen, um es sofort zur Analyse zu öffnen.

Hier wird es schwierig. In meinem Fall musste ich einen Hinweis von @ magicandre1981 zu sehen an der richtigen Stelle, unter der SystemaktivitätAllgemein Events . Dort sah die Anzahl der RPC-Ereignisse verdächtig hoch aus:

46.918 Microsoft-Windows-RPC-Ereignisse

Drilldown, der Windows Defender Firewall svchost.exewurde eine Menge auf dem zeigt sich Server Seite win:Startund win:StopEreignisse:

RpcServerCall

Der nächste Schritt bestand darin herauszufinden, wer diese RPC-Anrufe gesendet hat. Beim Betrachten der Client-Seite sah eine andere svchost.exeInstanz verdächtig aus:

RpcClientCall

In der Tat konnte Process Hacker keinen Dienst erkennen, der in diesem Prozess ausgeführt wurde, was auch durchweg zu einer CPU-Auslastung führte:

Name der Dienstgruppe: netsvcs

In diesem Fall konnte der Windows-Task-Manager den Dienst erfolgreich identifizieren:

Internetverbindungsfreigabe (ICS)

In der Tat steckte der Dienst im Startzustand fest. Ich habe es deaktiviert, da ich es nicht benötige, und die CPU-Auslastung ist nach dem nächsten Neustart wieder normal.


Ich möchte mich bei @HelpingHand und @ magicandre1981 bedanken, deren Hilfe in den Kommentaren dies ermöglicht hat.


Wie später im TenForums-Beitrag festgestellt wurde , wird dieses Problem durch Zurücksetzen der Windows Defender-Firewall behoben .

fefrei
quelle
@HelpingHand: Was passiert, wenn man die Internet Connection Sharing (ICS)Dienste deaktiviert ? Wird WiFi Hotspot keine Option mehr sein?
llinfeng
Dies ist im Process Explorer etwas einfacher. Wenn Sie mit der rechten Maustaste auf "svchost.exe" klicken, die eine konstante Prozessormenge verwendet (mein Fall war 5% konstant), und auf die Registerkarte "Dienste" klicken, sehen Sie, welche Dienste unter diesem svchost ausgeführt werden. Ich hatte in diesem Fall nur einen, ICS. Ebenso steckte meine gemeinsame Nutzung der Internetverbindung in einem Startzustand fest. Unter "Firewall & Netzwerkschutz" konnte ich auf "Firewalls auf Standard wiederherstellen" klicken - dies hat mein Problem sofort behoben.
Howard Lince III
@Howard: Betrachten Sie sich als glücklich - eine Komplikation des Bürgermeisters waren für mich drei Dienste, die die problematische Instanz von teilen svchost.exe, was es schwierig macht, den Dienst zu identifizieren, der dies verursacht. Ich bin nicht sicher, warum sie in Ihrer Instanz keinen Host-Prozess freigegeben haben.
fefrei
2

Es ist einfacher, ich habe Erfolg gehabt, indem ich die Windows-Firewall-Einstellungen zurückgesetzt habe (insbesondere wenn die CPU-Auslastung damit zusammenhängt).

Durch Zurücksetzen der Windows Defender-Firewall auf die Standardeinstellungen wurde das Problem behoben.

Öffnen Sie dazu Einstellungen -> Update und Sicherheit -> Windows Defender -> Windows Defender Security Center öffnen -> Firewall- und Netzwerkschutz -> Firewall-Standardeinstellungen wiederherstellen

Hoffe, das hilft und funktioniert für jemand anderen ... Scheint ein ziemlich weit verbreitetes Problem zu sein.

Mohamad Osama
quelle
1
Dies hat in der Tat auch bei mir funktioniert, wie ich ganz unten in meiner Antwort erwähnt habe. Vielen Dank, dass Sie die Schritte hier gespiegelt haben!
fefrei
0

In meinem Fall habe ich nach dem Versuch verschiedener erfolgloser Korrekturen (einschließlich einiger der oben genannten Vorschläge, z. B. Zurücksetzen der Windows-Firewall) den "Diagnostic Policy Service" deaktiviert und das CPU-Hogging endgültig eingestellt. Dies ist möglicherweise nicht die ideale Lösung, scheint jedoch kein kritischer Dienst zu sein. So deaktivieren Sie es:

  1. Öffnen Sie "System Configuration" ('msconfig.exe') als Administrator
  2. Registerkarte "Allgemein": Wählen Sie "Selektiver Start".
  3. Registerkarte "Dienste": Deaktivieren Sie "Diagnostic Policy Service".
  4. Starten Sie Windows neu

Vielen Dank an Ranga Rajesh Kumars YouTube-Kanal , der mich auf diese Lösung hingewiesen hat.

Philly Dee
quelle