webentwicklung-frage-antwort-db.com.de

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

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

graph of CPU utilization

Diese svchost.exe-Instanz ist für das Hosten von drei Diensten verantwortlich:

Base Filtering Engine, CoreMessaging, Windows Defender Firewall

Die CPU-Zeit wird von einem Thread innerhalb dieses Prozesses verbraucht, den Process Hacker keinem dieser drei Dienste zuordnen kann:

screenshot from Process Hacker

Angesichts der Tatsache, dass diese drei Dienste als wichtige Systemdienste gelten, ist es schwierig, etwas dagegen zu unternehmen. Diese Dienste können nicht durch services.msc angehalten oder deaktiviert werden, und das Beenden des Prozesses löst eine Fehlerüberprüfung (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 . Der Prozessmonitor zeigt, dass ständig auf die Registrierung zugegriffen wird:

screenshot from Process Monitor

Ein CSV-Export einer Prozessmonitorerfassung, gefiltert nach diesem Prozess, ist hier verfügbar .

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


Update 2: Die Analyse mit dem Windows Performance Analyzer zeigt, dass der Code von rpcrt4.dll die meiste CPU-Zeit beansprucht:

screenshot from Windows Performance Analyzer

10
fefrei

Es stellte sich heraus, dass dies mit der gemeinsamen Nutzung der Internetverbindung (Internet Connection Sharing, ICS) zusammenhängt.

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 auch gelernt hat, habe ich Process Hacker verwendet, mit dem auch die Konfiguration eines Dienstes bearbeitet werden kann.

Durch Doppelklicken auf die fehlerhafte Instanz svchost.exe und Auswahl der Registerkarte Service wird angezeigt, welche Services in diesem Prozess ausgeführt werden:

svchost.exe (1688) Properties

svchost.exe kann viele Windows-Dienste gleichzeitig hosten, wodurch es schwierig wird, den Dienst zu identifizieren, der Probleme verursacht. Während neuere Versionen von Windows 10 in der Regel Dienste isolieren, wenn genügend RAM verfügbar ist , verwenden einige Dienste weiterhin einen gemeinsamen 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 Service des Hauptfensters können wir konfigurieren, ob ein Service einen Prozess freigeben kann:

MpsSvc Properties

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 nicht, dass Benutzer sich in die Konfiguration seines Dienstes einmischen. Um diese Einstellung erfolgreich zu ändern, musste ich

  • gewähren Sie der Gruppe Administratoren Vollzugriff auf diesen Dienst.
  • den Dienst deaktivieren,
  • neustart, damit der Dienst gestoppt wird (kann nicht separat gestoppt werden),
  • ändern Sie den Diensttyp in Own Process und aktivieren Sie den Dienst erneut (stellen Sie ihn auf Auto Start ) und
  • starten Sie ein letztes Mal neu, um diese Änderungen zu übernehmen.

Danach hostet der anstößige svchost.exe nur einen einzelnen Dienst, sodass wir einen Verdacht haben:

Windows Defender Firewall (MpsSvc)

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

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

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

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 brauchte ich einen Hinweis von @ magicandre1981, um unter Systemaktivität Allgemeine Ereignisse an der richtigen Stelle zu suchen. Dort sah die Anzahl der RPC-Ereignisse verdächtig hoch aus:

46.918 Microsoft-Windows-RPC events

Beim Drilldown wurde der svchost.exe der Windows Defender-Firewall auf der Serverseite von win:Start- und win:Stop-Ereignissen häufig angezeigt:

RpcServerCall

Der nächste Schritt bestand darin, herauszufinden, wer diese RPC-Aufrufe gesendet hat. Auf der Clientseite sah eine andere Instanz von svchost.exe verdächtig aus:

RpcClientCall

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

Service group name: netsvcs

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

Internet Connection Sharing (ICS)

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


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


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

9
fefrei

Es ist einfacher, ich hatte Erfolg, als ich die Einstellungen der Windows-Firewall (insbesondere, wenn die CPU-Auslastung einen ähnlichen Anstieg aufweist) mithilfe der folgenden Anweisungen zurücksetzte:

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-Sicherheitscenter öffnen -> Firewall- und Netzwerkschutz -> Firewall-Standardeinstellungen wiederherstellen

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

2
Mohamad Osama