Hohe CPU-Auslastung durch WMIPRVSE.EXE-Prozess in regelmäßigen Abständen in Windows

  • 16.11.2020
  • 3 Minuten zum Lesen
    • D
    • x

Dieser Artikel bietet eine Problemumgehung für das Problem der hohen CPU-Auslastung durch WMIPRVSE.EXE-Prozess in regelmäßigen Abständen.,

Original produkt version: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Fenster 10 – alle ausgaben
Original KB anzahl: 4483874

Symptome

Wenn sie verwenden eine Windows-basierten computer, sie bemerken, dass die Windows Management Instrumentation (WMI) Provider Host (WmiPrvSE.exe) Prozess ist mit hoher CPU-Kapazität (in der Nähe von 100 Prozent) für mehrere Minuten alle 15 bis 20 Minuten.

Wenn das Problem auftritt, verwenden Sie den Task-Manager, um die Prozesskennung (PID) des WMIPRVSE zu identifizieren.EXE-Prozess, der hohe CPU verbraucht., Öffnen Sie dann eine erhöhte Eingabeaufforderung und führen Sie den folgenden Befehl aus:

tasklist /m wmiperfclass.dll

Die Liste der WMIPRVSE.EXE-Prozesse, die dieses Modul geladen haben, werden angezeigt. Normalerweise wird nur ein Prozess aufgelistet. Wenn Sie jedoch sowohl 32-Bit-als auch 64-Bit-Clients haben, werden möglicherweise zwei Prozesse angezeigt. Dies ist Beispielausgabe:

Bildname PID Module
========== ======== ==========================
WmiPrvSE.exe-2140 WmiPerfClass.,dll

Wenn die PID des aufgelisteten Prozesses mit der im Task-Manager gefundenen übereinstimmt, tritt wahrscheinlich das in diesem Artikel beschriebene Problem auf.

Ursache

Dieses Problem kann durch einen der folgenden Faktoren verursacht werden.

Ein oder mehrere Prozesse verwenden eine hohe Anzahl von Handles

Alle Handles werden in der Kernstruktur \BaseNamedObjects gespeichert. Der WMIPerfClass-Anbieter muss diese Struktur scannen, wenn er die Leistungsklasse erstellt, die sich auf die Jobobjekte bezieht.,

Wenn diese Struktur aufgrund der hohen Anzahl von Handles aufgebläht ist, hat der Vorgang eine hohe CPU-Auslastung und dauert länger als normal.

Sie können eine Auswirkung für diese Bedingung erwarten, wenn ein Prozess mehr als 30.000 Handles verwendet oder die Gesamtzahl der Handles auf dem System 50.000 übersteigt.

Ein Update, das im März 2020 für unterstützte Betriebssystemversionen veröffentlicht wird, enthält einige Leistungsoptimierungen und behebt einige Varianten dieses Problems. Weitere Informationen zum Update, das für Ihre Windows-Version gilt, finden Sie im Windows-Aktualisierungsverlauf.,

Ein oder mehrere Prozesse, die auf dem System ausgeführt werden, verwenden viel Speicher

Dies wirkt sich auf die Erstellung der Prozessleistungsklassen aus, da der Speicherbereich jedes laufenden Prozesses abgefragt werden muss. Der vom Prozess verwendete Speicher kann fragmentiert sein, wodurch der Vorgang ressourcenintensiver wird. Dies geschieht, weil WMIPerfClass auch „kostspielige“ Leistungsindikatoren abfragt.,

Sie können überprüfen, ob kostspielige Leistungsindikatoren aktiviert sind, indem Sie den folgenden PowerShell-Befehl ausführen:

‎ (gwmi -query 'select * from meta_class').Name | ? { $_ -match "costly"} 

Wenn der Befehl Ergebnisse zurückgibt, zeigt dies die kostspieligen Leistungsindikatoren an, die aktiviert sind.,d=“77921f1d55″>

Win32_PerfFormattedData_PerfProc_FullImage_Costly
Win32_PerfRawData_PerfProc_FullImage_Costly
Win32_PerfFormattedData_PerfProc_Image_Costly
Win32_PerfRawData_PerfProc_Image_Costly
Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly
Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly
Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly
Win32_PerfRawData_PerfProc_ThreadDetails_Costly

Workaround

Um das Problem zu beheben, identifizieren Sie den Prozess, der eine große Anzahl von Handles oder viel Speicher verwendet., Der Prozess kann ein Speicherleck oder ein Handle-Leck-Problem haben. Starten Sie den Prozess als Workaround neu.

Wenn Sie Windows Server 2016 oder eine neuere Version von Windows verwenden, werden standardmäßig die folgenden Leistungsindikatoren ab den folgenden kumulativen Updates deaktiviert:

  • Windows Server 2016 / Windows 10 Version 1607 (RS1)
    18.Oktober 2018—KB4462928 (OS Build 14393.2580)
  • Windows 10 Version 1703 (RS2)
    24. Windows 10 Version 1709 (RS3)
    Juli 24, 2018—KB4338817 (OS Build 16299.,Juli 2018—KB4345421 (OS Build 17134.167)

Hinweis

Wenn Sie nach der Installation des kumulativen Updates die Klassen benötigen, die sich auf die kostspieligen Leistungsindikatoren beziehen, setzen Sie den Wert Teuren Anbieter auf 1 (DWORD) unter dem folgenden Registrierungsunterschlüssel, um sie wieder verfügbar zu machen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem

Die kumulative Aktualisierung wirkt sich nicht auf das Verhalten aus, wenn ein Prozess eine große Anzahl von Handles verwendet.

Dieses Problem tritt auf, wenn ein Client die Leistungsklassen abfragt., Dies ist normalerweise eine Überwachungsanwendung.

Als Problemumgehung können Sie auch die Überwachungsanwendung deaktivieren, um die Erstellung der Leistungsklassen zu verhindern.

Weitere Informationen

WMI bietet mehrere Leistungsklassen. Weitere Informationen finden Sie unter Leistungszählerklassen.

Diese Klassen werden dynamisch basierend auf den Leistungsindikatoren erstellt, die auf dem System verfügbar sind. Alle Klassen werden gleichzeitig erstellt, nicht nur die Klassen, die abgefragt werden.,

WMIPerfClass ist das Modul, das die Erstellung dieser Klassen übernimmt, wenn der WMI-Client eine davon abfragt oder die verfügbaren Klassen aufzählt.

Diese Leistungsklassen werden in einem Cache gespeichert, der nach 15 bis 20 Minuten ungültig wird. Sobald der Cache ungültig ist, müssen die Leistungsklassen erneut erstellt werden, wenn ein Client sie anfordert.

Erstellen der Leistungsklassen bedeutet, dass die WMIPerfClass.dll-Modul muss in einem WMIPRVSE geladen werden.EXE-Prozess und der zugehörige code ausgeführt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.