Warum hostet WMI Provider (WmiPrvSE.exe) spicken Sie meine CPU weiter?

Ich halte meinen Laptop im Allgemeinen 24x7, und am Ende des Tages ist es wirklich ärgerlich, meine Oberschenkel wegen Überhitzung verbrennen zu lassen.

Die Überhitzung scheint ein Ergebnis von WMI Provider Host (WmiPrvSE.exe) spiking der CPU-Auslastung auf 25% alle paar Minuten. Warum passiert das?

Ich habe einen HP Envy 14 (mit dem HP gebündelten Mist), der unter Windows 7 Home Premium läuft.

(Hinweis: Basierend auf @nhinkle ' s früheren Beobachtungen scheint es dass HP Wireless Manager der Schuldige sein könnte, gibt es eine Möglichkeit, dies zu bestätigen?)

Diese Frage war eine Super User Frage der Woche.
Lesen Sie die Feb 28, 2011 blogeintrag für weitere Details oder senden Sie Ihre eigenen Frage der Woche.

Author: Community, 2011-02-02

7 answers

Wie Sathya in seiner Frage erwähnt hat, hatte ich bereits Erfahrung mit diesem Problem auf meinem ähnlichen HP Laptop, und ich habe jetzt mit der wissenschaftlichen Methode bestätigt, dass die CPU-Spitzen auf HP Laptops durch den HP Wireless Assistant verursacht werden. Oder HP CPU Assassin, wie ich es nennen kann.

Überblick über das Experiment

  • Frage: Was bewirkt, dass die CPU auf HP Laptops in häufigen Intervallen ansteigt, insbesondere die WmiPrvSE.exe Prozess?

  • Hypothese: Der HP Wireless Assistant (HPWA) verursacht das Problem

  • Methode:

    1. Überprüfen Sie, ob das Problem auftritt, wenn die HPWA installiert ist.
    2. Überprüfen Sie, ob die CPU nicht mehr hochgefahren wird und der Prozess WmiPrvSE.exe nicht mehr >20% CPU verwendet, wenn der HPWA-Prozess angehalten wird.
    3. Überprüfen Sie, ob die CPU beim erneuten Aktivieren des HPWA-Prozesses wieder hochgefahren wird
    4. Wiederholen Sie die Schritte 2 und 3 für mehrere Versuche, um die Genauigkeit der Ergebnisse zu gewährleisten
  • Ergebnisse: HPWA verursacht extreme CPU-Auslastung

  • Schlussfolgerung: Sie sollten HPWA deinstallieren, da es nichts Nützliches tut

Hintergrundinformationen

Als ich meinen HP Pavillion dm4t Laptop bekam, bemerkte ich, dass die CPU häufig bis zu 50% Auslastung erreichen würde, fast jede zweite Sekunde. Das hat die Akkulaufzeit verkürzt, und den Laptop aufheizen; viel die gleichen Symptome wie Sathya erlebt hat. Nur durch einen Blick auf den Ressourcenmonitor in Windows 7 konnte ich feststellen, dass der Prozess WmiPrvSE.exe fehlerhaft war.

cpu-nom-nom

Eine schnelle Google-Suche bestätigte meine Annahme, dass dies der Windows Management Instrumentation (WMI) Host-Prozess war. Kurz gesagt, WMI kann verwendet werden, um Systeminformationen abzufragen, z. B. Prozessorauslastung, laufende Prozesse, angemeldete Benutzer und alle möglichen anderen Informationen. Der WMI-Hostprozess führt WMI-Abfragen für jeden anderen Prozess aus, der sie erstellt, sodass WmiPrvSE.exe nicht selbst der Schuldige war, sondern einfach ein Vermittler.

Um herauszufinden, welcher bestimmte Prozess dieses Problem verursacht hat, habe ich Systinternals Process Explorer verwendet. Ich fand heraus, welche Instanz des WmiPrvSE.exe - Prozesses eine große Menge CPU verwendete, und klickte darauf, um detaillierte Informationen zu öffnen.

process explorer

Leider konnte ich keine Möglichkeit sehen, um herauszufinden, was Prozess machte alle Abfragen, aber da ich dies als Quelle der CPU-Spitzen isoliert hatte und wusste, dass es sich um einen Dienst handelte, ging ich zum Servicemanager, um zu sehen, welche Dienste von WMI abhingen, und dachte, dies könnte mich zu einem anderen Hinweis führen.

dienstleistungen nom nom

Ich dachte, dass es kein eingebauter Windows-Dienst sein würde, der das Problem verursacht, also beschloss ich, diese zu beseitigen, die Liste zu bearbeiten und zu versuchen, jeden Dienst zu deaktivieren und zu sehen, ob das Problem bestehen blieb. Ganz oben auf der Liste stand der HP Wireless Assistant Service. Ich ging zurück zum Menü Dienste und deaktivierte diesen Dienst. Im Task-Manager sah ich, dass die CPU-Auslastung fast nichts erreicht hatte. Ich den HPWA Service wieder auf. CPU-Auslastung schoss wieder nach oben. Ich hatte jetzt genug Daten, um meine Theorie zu bilden. Ich habe den HPWA-Dienst deinstalliert und hatte das Problem nie wieder.

Überprüfung der Hypothese

Einige Monate später stellt Sathya diese Frage. Ich beschloss, ein für allemal zu beweisen, dass dies die Schuld von HPWA war. Ich habe das neu installiert HP Wireless Assistant, den ich seit Monaten nicht mehr installiert hatte. Sofort wurde die Prozessorauslastung erhöht. Ich ging dann mit dem oben beschriebenen Experiment durch.

Zuerst habe ich den für den HPWA-Dienst verantwortlichen Prozess im Ressourcenmonitor isoliert. HPWA_Service.exe und HPWA_Main.exe sind die beiden. Hier ist, wie die CPU-Auslastung aussah, wenn beide ausgeführt wurden:

task-manager mit hpwa laufen

Dann habe ich beide Prozesse ausgesetzt. Die CPU-Auslastung ging sofort zurück; hier ist, wie es nach ein paar aussah momente für die vorherige CPU-Auslastung in der Grafik zu löschen:

task-manager ohne hpwa laufen

Ich habe die Prozesse wieder aktiviert, um zu sehen, ob die Verwendung wieder hochgehen würde. Es Tat:

task-Manager nur aktiviert hpwa
Die erste Spitze, wie ich HPWA aktivieren

task-Manager nach dem Aktivieren von hpwa
Eine Weile nachdem ich HPWA aktiviert habe

Das erneute Anhalten der Prozesse führte dazu, dass die CPU-Auslastung zurückging:

geringere CPU-Auslastung nach Deaktivierung von hpwa

Ich habe dies für eine weitere Iteration getestet, und auf der dritten nun, genau das gleiche passierte wieder. Ich habe dies als ausreichenden Beweis angesehen, um zu zeigen, dass der HP Wireless Assistant das Problem verursacht hat, und anschließend den Dienst deaktiviert und ihn jetzt deinstalliert.

Alles, was HPWA zu tun scheint, ist, den Benutzer zu informieren, wenn sein WLAN ein-oder ausgeschaltet ist, und CPU zu verschlingen. Es gibt nichts, was Sie damit tun können, dass Sie nicht mit den integrierten Wireless-Management-Tools tun können, so würde ich empfehlen, dass, wenn Sie diese Software installiert haben, entfernen Sie es.


Hinweis: Mindestens eine Person hat berichtet, dass die Deinstallation von HPWA dazu geführt hat, dass ihr drahtloser Schalter auf der Tastatur nicht mehr funktioniert. Auf meinem Laptop funktionierte es nach der Deinstallation von HPWA einwandfrei, aber falls Ihre nicht mehr funktioniert, können Sie die WLAN-Karte immer in Windows deaktivieren. Presse Winkey+xTurn Wireless Off um das Windows Mobility Center zu öffnen, klicken Sie auf die Schaltfläche Turn Wireless Off.

windows mobility center


Nach a diskussion in den HP Supportforen wurde das Problem in neueren Versionen des HP Wireless Assistant behoben. Wenn Ihr Laptop HPWA benötigt, um die WLAN-Ein / Aus-Taste zu verwenden, können Sie die neueste Version von der HP Drivers-Website herunterladen und haben dieses Problem wahrscheinlich nicht mehr. Wenn Sie es jedoch nicht für die WLAN-Ein/Aus-Taste benötigen, scheint es immer noch keinen Mehrwert durch die Installation dieser Software zu geben.

 111
Author: nhinkle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Fehlersuche

  1. Laden Sie ProcDump von Microsoft Sysinternals herunter.

  2. Lassen Sie es einen Dump einmal die WmiPrvSE nehmen.EXE trifft 25% für 1 Sekunde:

    procdump.exe -c 25 -s 1 -x WmiPrvSE.EXE %HOMEPATH%\WmiPrvSE.dmp
    

    Dadurch wird ein Speicherauszug in Ihrem Benutzerordner erstellt.

    Fühlen Sie sich frei, dies noch 1-2 Mal zu wiederholen, damit Sie mehr Dumps haben und sicher sein können, dass die Ursache abgeladen wird und nicht ein anderes normaleres Ereignis.

  3. Analysieren Sie Ihre dump(en) online und teilen Sie es optional auf SpeedyShare.

    Alternative: WinDbg könnte mit dem Befehl !analyze -v verwendet werden, stellen Sie sicher, dass Symbole.

  4. Der angezeigte Stack-Trace sollte die Prozedur enthalten, die dies verursacht.

Vielleicht googeln Sie einige der obersten Prozeduren des Stapels, um eine bessere Vorstellung davon zu bekommen, was sie tun.
Wenn sie nicht helfen, benötigen Sie möglicherweise eine erweiterte Analyse. Siehe meine nächste Abschnitt:


  1. Laden Sie das Setup von Windows Performance Analysis Tools für Ihre Windows-Version herunter.
  2. Installieren Sie die software auf Ihrem system.
  3. Öffnen Sie eine Eingabeaufforderung als Administrator und kopieren Sie den nächsten Befehl:

    xperf -start perf!GeneralProfiles.InBuffer -stackwalk profile && timeout -1 && xperf -stop perf!GeneralProfiles.InBuffer %HOMEPATH%\myTrace.etl
    
  4. Drücken Sie ENTER sobald, um den Befehl zu starten, müssen Sie jetzt warten, bis der Spike aufgetreten ist.

  5. Gleich nach deiner Spitze gehst du zur Konsole und drücken Sie ENTER.
  6. Nach einiger Zeit eine Protokolldatei myTrace warten.etl wird in Ihrem Benutzerordner erstellt.
  7. Führen Sie den folgenden Befehl aus, um die Datei anzuzeigen und zu analysieren (WinDbg/Symbole erforderlich):

    xperf %HOMEPATH%\myTrace.etl
    

Wenn du willst, dass ich es mir ansehe:

  1. Komprimieren myTrace.etl aus Ihrem Benutzerordner in eine ZIP-Datei.
  2. Teilen Sie die komprimierte ZIP-Datei auf SpeedyShare.
  3. Teilen Sie den Link hier, ich werde versuchen, die Ursache Ihres Problems zu finden und Ihnen zu zeigen.

Als WmiPrvSE.EXE ist ein Host zum Ausführen von WMI-Abfragen für den CAPI-Speicher, möglicherweise können Sie die Ursache auch bei XPerf aufgrund von IPC nicht finden, eine andere Lösung, die ich gerade gefunden habe, besteht darin, die WMI-Protokollierung zu aktivieren und die Protokolle wie beschrieben zu überprüfen hier wäre die ClientProcessId die PID des Prozesses, der die WMI-Abfrage. Diese PID kann zum Prozess zurückverfolgt werden, indem dem Task-Manager oder Process Explorer eine PID-Spalte hinzugefügt wird, oder mit tasklist /FI "PID eq X" wobei X die gefundene PID ist...


Analyse von Dump 1: Die Zeilen 94-115 zeigen einen Remote Procedure Call an.
Analyse von Dump 2: Die Zeilen 84-105 zeigen einen Remote Procedure Call an.

Im Kernel wird ein neuer Thread gestartet , um eine Remote-Prozedur zu verarbeiten Rufen Sie stub auf, bei dem es sich im Wesentlichen um eine Abfrageanforderung handelt, die der WMI-Anbieter ausführt und darauf antwortet. Dies führt zu einer hohen CPU-Aktivität aufgrund des Lesens der Registrierungs-und / oder Leistungsinformationen.

Da ein Dump eine Erfassung eines einzelnen Moments ist, können Sie nicht sehen, welcher Prozess den RPC ausgeführt hat.
Sie benötigen also ein Programm, das wie XPerf verfolgt, um den vorherigen Thread anzuzeigen, der den RPC ausführt.

Oder, wenn Sie RPC-Statusinformationen aktivieren, Sie kann rpcdbg verwenden, um zu sehen, wer den Anruf initiiert hat.

Beispiel:

0:000> bp rpcrt4!RpcServerUseProtseqEpA
0:000> g
Breakpoint 0 hit
eax=00452000 ebx=7ffd5000 ecx=00452008 edx=00000014 esi=00d5f55c edi=7c911970
eip=77e97a0b esp=0012ff3c ebp=0012ff6c iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206
RPCRT4!RpcServerUseProtseqEpA:
77e97a0b 8bff mov edi,edi
0:000> kb
ChildEBP RetAddr Args to Child
0012ff38 00401046 00452000 00000014 00452008 RPCRT4!RpcServerUseProtseqEpA
0012ff6c 00401e37 00000001 003330a0 00333120 hellos!main+0x46 [e:\projects\hello\hellos.c @ 21]

Das obige Beispiel legt einen Haltepunkt für den RPC fest, sodass Sie sehen können, wer ihn in der zweiten Stapelzeile ausführt. Es ist jedoch unwahrscheinlich, dass das Festlegen eines Haltepunkts beim ersten Anruf (bitte beachten Sie, dass dies ein Live-Debugging ist) Ihnen hilft, jedes Mal zu sehen, wer den WMI-Anbieter anruft...

Es gibt viel mehr Informationen in diesem Artikel über RPC-Statusinformationen, die helfen könnten, aber es ist nicht für schwache Nerven wie uns, all das zu durchlaufen, wenn wir stattdessen nur XPerf verwenden könnten. :-)


Wie wir jetzt über die innere Funktionsweise des RPC wissen, können wir auch API Monitor:

  1. API Monitor herunterladen, installieren und starten. (zweimal wenn Sie 64 Bit haben: einmal x86, einmal x64)
  2. Gehe zu Datei --> Als Administrator ausführen
  3. Legen Sie die API-Erfassung fest Filtern Sie nach dem Modul Rpcrt4.dll.

    geben Sie hier die Bildbeschreibung ein

  4. Ähnlich wie beim Haltepunkt möchten wir wissen, wer die Funktionen RpcServerUseProtSeq aufruft:

    geben Sie hier die Bildbeschreibung ein

  5. Haken jedes Laufenden Prozess außer für diejenigen mit einem niedrigen PID (um Abstürze zu verhindern).
    Ideal, Sie wollen nicht haken dwm.exe/winlogon.exe oder niedriger.
    Sie können auch einzelne Prozesse ausprobieren und sie später aus dem Fenster Hooked Processes...

    Obwohl... Ich habe versuchte es und konnte über jeden Prozess Haken.

  6. Wenn alles gut geht, enthält der mit verbundene Prozess, der den RPC-Aufruf ausführt, Threads.
    Und wenn Sie auf diese Threads klicken, sollten Sie eine Reihe von Aufrufen sehen.
    Wenn Sie dies tun, haben Sie den Prozess gefunden, der das Problem verursacht!

Lösung

Halten Sie Ihren Computer up-to-date ist wichtig, die Installation von HPWA 4.0.10.0 löst dies! ;-)

 38
Author: Tamara Wijsman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-10-24 03:45:08

Der Microsoft Blogeintrag Ist WMIprvse ein echter Bösewicht? zeigt, wie zu finden, welcher Prozess für die CPU verantwortlich ist, dass WmiPrvSE.exe verwendet.

Die Methode verwendet die Ereignisanzeigeoption "Analyse-und Debug-Protokolle anzeigen", um alle WMI-Aktivitäten zu verfolgen und dadurch die Prozess-ID des schuldigen Prozesses abzurufen.

 13
Author: harrymc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-12-30 17:49:47

Wenn Sie dies nur für alle anderen im selben Boot hinzufügen, ist diese Seite überall bei Google. Ich hatte das gleiche Problem mit WmiProvderHost CPU bis zu 50% Spicken und Batterie auf meinem Lenovo Yoga2 Pro unter Windows 8.1 entleeren.

Nach einigen der ausgezeichneten Untersuchung Ratschläge oben, entdeckte ich das Problem für mich war eigentlich GoPro Studio (kostenlose Video-Editing-Software, die mit GoPro Kameras kommt). Es installiert einen Überwachungsdienst, der darauf wartet, dass Sie Ihre Kamera anschließen und auf mich dies war der Schuldige.

 7
Author: DannyT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-11-14 08:17:34

Verwenden Sie zum Debuggen xperf aus dem Windows Performance Toolkit und führen Sie diese cmd-Datei aus:

xperf -on PROC_THREAD+LOADER+PROFILE+INTERRUPT+DPC+DISPATCHER -stackwalk profile -BufferSize 1024 -MaxFile 256 -FileMode Circular -f Kernel.etl
xperf -start WMILogger -on Microsoft-Windows-WMI-Activity::0xff -BufferSize 1024 -f WMI.etl

echo Please capture about 30s of the WMI activity.

pause

xperf -stop
xperf -stop WMILogger
xperf -merge WMI.etl kernel.etl WMItracing.etl

del WMI.etl
del kernel.etl

Öffnen Sie das generierte WMItracing.etl in WPA.exe und grag & drop das Diagramm "Generische Ereignisse" von der linken Seite in den Analysebereich.

geben Sie hier die Bildbeschreibung ein

Filtern Sie nun nach Microsoft-Windows-WMI-Activity - Ereignissen und suchen Sie nach WMI-Vorgängen und der ClientProcessId.

In meinem Beispiel gehört diese CLientProcessId zu einem Tool namens Veeam ONE Server überwachen. Stoppen, das Problem der CPU-Auslastung behoben.

Und das zweite Beispiel wird hier gezeigt:

geben Sie hier die Bildbeschreibung ein

Hier sehen Sie wiederkehrende Aufrufe eines Prozesses mit PID von 0, der zum Intel PROSet Monitoring Service gehört.

Hier wird die CPU-Auslastung auch in den CPU-Sampling-Callstacks angezeigt:

geben Sie hier die Bildbeschreibung ein

Daher führt das Intel-Tool zu oft WMI-Benachrichtigungsabfragen aus, was zu Problemen führt. Stoppen, das Problem wurde behoben.

 4
Author: magicandre1981,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-08-02 16:07:23

Hast du versucht zu sehen, ob es ein Virus ist? Einige Viren wirklich gerne Parade um als Windows-Dienste wie das. Stellen Sie sicher, dass sich der Prozess WmiPrvSE.exe im Verzeichnis c:\windows\system32\wbem befindet. Wenn nicht, möchten Sie möglicherweise allgemeine Spyware-Erkennungsprogramme ausführen. Wenn es sich nicht um Spyware handelt, könnte es sich möglicherweise um einen anderen Dienst handeln, der es aufruft. Ich weiß, ich habe schnell ein paar Gadgets auf meinem Computer laufen, und ironischerweise macht die Performance Monitor Gadget manchmal meine CPU Spike ein wenig. Es könnte auch ein anderer Dienst sein das drückt hin und wieder aufs Gas. Zum Beispiel Bloatware von HP, Dell usw.

Ansonsten scheint die andere Antwort von TomWij ziemlich nett zu sein, um sie zu beheben!

 1
Author: Duall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-10-05 16:56:07

Für mich war Garmin Express der Schuldige. Das Beenden der Anwendung löst das Problem.

 0
Author: Sundae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-01 21:19:19