Ich halte meinen Laptop in der Regel rund um die Uhr in Betrieb, und am Ende des Tages ist es wirklich ärgerlich, wenn ich mir die Schenkel verbrenne, weil ich überhitzt bin.
Die Überhitzung scheint darauf zurückzuführen zu sein, dass der WMI-Provider-Host (WmiPrvSE.exe) die CPU-Auslastung alle paar Minuten auf 25% erhöht. Warum passiert das?
Ich habe einen HP Envy 14 (mit dem HP-Mistpaket), der unter Windows 7 Home Premium ausgeführt wird.
(Hinweis: Aufgrund der Beobachtungen von @ nhinkle in der Vergangenheit scheint HP Wireless Manager der Schuldige zu sein. Gibt es eine Möglichkeit, dies zu bestätigen?)
Diese Frage war eine Super User Frage der Woche .
Lesen Sie den Blog-Eintrag vom 28. Februar 2011, um weitere Informationen zu erhalten, oder reichen Sie Ihre eigene Frage der Woche ein.
Antworten:
Wie Sathya in seiner Frage erwähnt hat, habe ich bereits Erfahrungen mit diesem Problem bei einem ähnlichen HP-Laptop gesammelt und nun mithilfe der wissenschaftlichen Methode bestätigt, dass die CPU-Spitzen bei HP-Laptops vom HP Wireless Assistant verursacht werden. Oder HP CPU Assassin, wie ich es nennen darf.
Überblick über das Experiment
Frage : Was führt dazu, dass die CPU auf HP-Laptops in regelmäßigen Abständen ausfällt, insbesondere während des
WmiPrvSE.exe
Vorgangs?Hypothese : Der HP Wireless Assistant (HPWA) verursacht das Problem
Methode :
WmiPrvSE.exe
Überprüfen Sie, ob die CPU nicht mehr ansteigt und wenn der HPWA-Prozess angehalten wird, nicht mehr über 20% der CPU verfügt.Ergebnis : HPWA führt zu extremer CPU-Auslastung
Fazit : Sie sollten HPWA deinstallieren, da es nichts Sinnvolles macht
Hintergrundinformation
Als ich meinen HP Pavillion dm4t-Laptop bekam, bemerkte ich, dass die CPU häufig fast jede zweite Sekunde auf bis zu 50% ausgelastet war. Dadurch wurde die Akkulaufzeit erschöpft und der Laptop aufgeheizt. fast die gleichen Symptome, die Sathya erlebt hat. Schon beim Betrachten des Ressourcenmonitors in Windows 7 konnte ich feststellen, dass der Prozess
WmiPrvSE.exe
fehlerhaft war.Eine schnelle Google-Suche bestätigte meine Annahme, dass dies der Windows Management Instrumentation (WMI) -Hostprozess war. Kurz gesagt, WMI kann verwendet werden, um Systeminformationen wie die Prozessorauslastung, laufende Prozesse, angemeldete Benutzer und alle möglichen anderen Informationen abzufragen. Der WMI-Host-Prozess führt WMI-Abfragen für jeden anderen Prozess aus, der sie erstellt, und war daher
WmiPrvSE.exe
nicht der Schuldige, sondern lediglich ein Vermittler.Um herauszufinden , welcher Prozess dieses Problem verursacht hat, habe ich den Systinternals Process Explorer verwendet . Ich fand heraus, welche Instanz des
WmiPrvSE.exe
Prozesses eine große Menge an CPU verbrauchte, und klickte darauf, um detaillierte Informationen zu öffnen.Leider konnte ich keine Möglichkeit finden, herauszufinden, welcher Prozess all die Abfragen ausführte, aber da ich dies als Quelle für die CPU-Spitzen isoliert hatte und wusste, dass es sich um einen Dienst handelte, ging ich zum Servicemanager, um herauszufinden, welcher Die Dienste hingen von WMI ab und dachten, das könnte mich zu einem anderen Hinweis führen.
Ich stellte fest, dass es sich nicht um einen integrierten Windows-Dienst handelt, der das Problem verursacht. Aus diesem Grund habe ich mich entschlossen, die Liste zu analysieren und zu versuchen, die einzelnen Dienste zu deaktivieren, und zu prüfen, ob das Problem weiterhin besteht. Ganz oben auf der Liste stand der HP Wireless Assistant Service. Ich ging zurück zum Servicemenü und deaktivierte diesen Service. Rückblickend im Task-Manager stellte ich fest, dass die CPU-Auslastung fast auf Null gesunken war. Ich habe den HPWA-Service wieder eingeschaltet. Die CPU-Auslastung wurde wiederhergestellt. 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 den HP Wireless Assistant neu installiert, den ich seit Monaten nicht mehr installiert hatte. Die Prozessorauslastung schoss sofort in die Höhe. Ich habe dann das oben beschriebene Experiment durchgeführt.
Zunächst habe ich den für den HPWA-Dienst verantwortlichen Prozess im Ressourcenmonitor isoliert.
HPWA_Service.exe
undHPWA_Main.exe
sind die beiden. So sah die CPU-Auslastung aus, wenn beide Prozesse ausgeführt wurden:Dann habe ich beide Prozesse ausgesetzt. Die CPU-Auslastung ging sofort zurück. So sah es nach einigen Augenblicken aus, als die vorherige CPU-Auslastung im Diagramm gelöscht wurde:
Ich habe die Prozesse erneut aktiviert, um festzustellen, ob die Nutzung wieder zunehmen würde. Es hat getan:
Die erste Spitze, wenn ich HPWA aktiviere
Kurz nachdem ich HPWA aktiviert hatte
Das erneute Anhalten der Prozesse führte dazu, dass die CPU-Auslastung zurückging:
Ich habe dies noch einmal getestet, und beim dritten Versuch passierte genau dasselbe erneut. Ich hielt dies für ausreichend, um zu zeigen, dass der HP Wireless Assistant das Problem verursacht und anschließend den Dienst deaktiviert hat, und werde ihn jetzt deinstallieren.
Alles, was der HPWA zu tun scheint, ist, den Benutzer zu informieren, wenn sein WLAN ein- oder ausgeschaltet ist, und die CPU zu verschlingen. Sie können damit nichts anfangen, was Sie mit den integrierten Tools für die drahtlose Verwaltung nicht tun können. Wenn Sie diese Software installiert haben, sollten Sie sie entfernen.
Hinweis: Mindestens eine Person hat gemeldet, dass die Deinstallation von HPWA dazu geführt hat, dass der Funkschalter auf der Tastatur nicht mehr funktioniert. Auf meinem Laptop funktionierte es nach der Deinstallation von HPWA weiterhin einwandfrei. Falls Ihr Computer jedoch nicht mehr funktioniert, können Sie die WLAN-Karte jederzeit in Windows deaktivieren. Drücken Sie + x, um das Windows Mobility Center zu öffnen, und klicken Sie dann auf die
Turn Wireless Off
Schaltfläche.Laut einer Diskussion in den HP Support-Foren wurde das Problem in neueren Versionen des HP Wireless Assistant behoben. Wenn Ihr Laptop HPWA benötigt, um den Ein- / Ausschalter für WLAN zu verwenden, können Sie die neueste Version von der HP Treiber-Website herunterladen. Dieses Problem tritt wahrscheinlich nicht mehr auf. Wenn Sie es jedoch nicht für den Ein- / Ausschalter für WLAN benötigen, scheint die Installation dieser Software keinen Mehrwert zu bieten.
quelle
Fehlerbehebung
Laden Sie ProcDump von Microsoft Sysinternals herunter .
Lassen Sie es einen Dump machen, wenn WmiPrvSE.EXE 1 Sekunde lang 25% erreicht:
Dadurch wird ein Speicherauszug in Ihrem Benutzerordner erstellt.
Fühlen Sie sich frei, dies noch ein bis zwei Mal zu wiederholen, damit Sie mehr Dumps haben und sicher sein können, dass die Ursache nicht mehr normal ist und nicht mehr.
Analysieren Sie Ihre Dumps online und teilen Sie sie optional auf SpeedyShare .
Alternative : WinDBG kann mit dem Befehl verwendet werden. Achten Sie
!analyze -v
darauf, Symbole zu setzen .Der angezeigte Stack-Trace sollte die Prozedur enthalten, die dies verursacht.
Vielleicht ein paar der Top-Prozeduren des Stacks googeln, um eine bessere Vorstellung davon zu bekommen, was sie tun.
Wenn sie nicht helfen, benötigen Sie möglicherweise eine weitergehende Analyse. Siehe meinen nächsten Abschnitt:
Öffnen Sie eine Eingabeaufforderung als Administrator und fügen Sie den folgenden Befehl ein:
Drücken Sie ENTER einmal den Befehl zu starten, jetzt müssen Sie warten , bis die Spitze aufgetreten ist.
Führen Sie den folgenden Befehl aus, um die Datei anzuzeigen und zu analysieren ( WinDBG / Symbole erforderlich):
Wenn du willst, dass ich es mir anschaue:
Da WmiPrvSE.EXE ein Host zum Ausführen von WMI-Abfragen für den CAPI-Speicher ist, können Sie die Ursache möglicherweise auch mit XPerf aufgrund von IPC nicht finden. Eine andere Lösung, die ich gerade gefunden habe, besteht darin, die WMI-Protokollierung und -Prüfung zu aktivieren Wie hier beschrieben , ist ClientProcessId die PID des Prozesses, der die WMI-Abfrage durchgeführt hat. Diese PID kann zum Prozess zurückverfolgt werden, indem dem Task-Manager oder dem Prozess-Explorer eine PID-Spalte hinzugefügt wird oder
tasklist /FI "PID eq X"
wobei X die gefundene PID ist ...Analyse von Speicherauszug 1 : Die Zeilen 94-115 zeigen einen Remote Procedure Call an .
Analyse von Speicherauszug 2 : Die Zeilen 84-105 zeigen einen Remote Procedure Call an .
Im Kernel wird ein neuer Thread gestartet , um einen Remote Procedure Call-Stub zu verarbeiten , bei dem es sich im Wesentlichen um eine Abfrageanforderung handelt, die der WMI-Anbieter ausführt und auf die er antwortet. Dies führt zu einer hohen CPU-Aktivität, da die Registrierungs- und / oder Leistungsinformationen gelesen werden.
Da ein Dump die Erfassung eines einzelnen Moments ist, können Sie nicht sehen, welcher Prozess den RPC ausgeführt hat.
Sie benötigen also ein Programm wie XPerf, um den vorherigen Thread zu sehen, der den RPC ausführen würde.
Wenn Sie RPC- Statusinformationen aktivieren , können Sie mit rpcdbg ermitteln , wer den Anruf initiiert hat.
Beispiel:
Im obigen Beispiel wird ein Haltepunkt für den RPC festgelegt, sodass Sie sehen können, wer ihn in der zweiten Stack-Zeile ausführt. Es ist jedoch unwahrscheinlich, dass das Festlegen eines Haltepunkts beim ersten Aufruf (bitte beachten Sie, dass dies ein Live-Debugging ist) Ihnen hilft, zu sehen, wer den WMI-Anbieter jedes Mal anruft ...
In diesem Artikel gibt es viel mehr Informationen über RPC-Statusinformationen , die möglicherweise helfen, aber es ist nicht für schwache Nerven wie uns, all das durchzugehen, wenn wir stattdessen einfach XPerf verwenden könnten. :-)
Da wir nun wissen, wie der RPC funktioniert, können wir auch API Monitor verwenden :
Setzen Sie den API Capture Filter auf das
Rpcrt4.dll
Modul.Ähnlich wie beim Haltepunkt möchten wir wissen, wer die
RpcServerUseProtSeq
Funktionen aufruft :Haken Sie jeden laufenden Prozess mit Ausnahme derer mit einer niedrigen PID ein (um Abstürze zu vermeiden).
Ideal, Sie wollen nicht , Haken
dwm.exe
/winlogon.exe
oder niedriger.Sie können auch einzelne Prozesse versuchen und aushängen sie später aus dem Hooked Processes Fenster ...
Obwohl ... ich habe es ausprobiert und konnte mich über jeden Prozess hinwegsetzen.
Wenn alles gut geht, enthält der Hooked-Prozess , der den RPC-Aufruf durchführt, Threads.
Und wenn Sie auf diese Themen klicken, sollten Sie eine Reihe von Anrufen 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 HPWA 4.0.10.0 dies löst! ;-)
quelle
Der Microsoft-Blogeintrag Ist WMIprvse ein echter Bösewicht? zeigt, wie ermittelt wird, welcher Prozess für die von WmiPrvSE.exe verwendete CPU verantwortlich ist.
Die Methode verwendet die Ereignisanzeigeoption von "Analyse- und Debugprotokolle anzeigen", um alle WMI-Aktivitäten zu verfolgen und dabei die Prozess-ID des schuldigen Prozesses abzurufen.
quelle
Diese Seite wird nur für alle anderen Nutzer im selben Boot hinzugefügt und ist über Google verfügbar. Ich hatte das gleiche Problem mit WmiProvderHost, bei dem die CPU bis zu 50% anstieg und der Akku meines Lenovo Yoga2 Pro unter Windows 8.1 leer war.
Nach einigen der oben genannten hervorragenden Untersuchungshinweise stellte ich fest, dass es sich bei dem Problem tatsächlich um GoPro Studio handelt (kostenlose Videobearbeitungssoftware, die mit GoPro-Kameras geliefert wird). Es installiert einen Überwachungsdienst, der darauf wartet, dass Sie Ihre Kamera anschließen, und für mich war dies der Schuldige.
quelle
Verwenden Sie zum Debuggen xperf aus dem Windows Performance Toolkit und führen Sie die folgende Cmd- Datei aus:
Öffnen Sie die generierte Datei "WMItracing.etl" in "WPA.exe" und markieren Sie das Diagramm "Allgemeine Ereignisse" von links im Analysefenster.
Filtern Sie jetzt nur nach Microsoft-Windows-WMI-Aktivitätsereignissen und suchen Sie nach WMI-Vorgängen und der ClientProcessId.
In meinem Beispiel gehört diese CLientProcessId zu einem Tool namens Veeam ONE Monitor Server . Das Beenden des Vorgangs behebt das Problem mit der CPU-Auslastung .
Und das zweite Beispiel ist hier gezeigt:
Es werden immer wieder Aufrufe eines Prozesses mit der PID von 1924 angezeigt, der zum Intel ProSet-Überwachungsdienst gehört.
Hier wird die CPU-Auslastung auch in den CPU-Sampling-Callstacks angezeigt:
Daher führt das Intel-Tool zu oft WMI-Benachrichtigungsabfragen durch, was zu Problemen führt. Das Problem wurde behoben, indem es gestoppt wurde.
quelle
Haben Sie versucht, herauszufinden, ob es sich um einen Virus handelt? Einige Viren ziehen es wirklich vor, mit solchen Windows-Diensten umzugehen. Stellen Sie sicher, dass sich der
WmiPrvSE.exe
Prozess imc:\windows\system32\wbem
Verzeichnis befindet. Andernfalls möchten Sie möglicherweise allgemeine Spyware-Erkennungsprogramme ausführen. Wenn es sich nicht um Spyware handelt, ist es möglicherweise ein anderer Dienst, der sie anruft. Ich weiß, dass auf meinem Computer schnell ein paar Minianwendungen ausgeführt werden, und ironischerweise sorgt die Minianwendung für die Leistungsüberwachung manchmal dafür, dass meine CPU ein wenig ansteigt. Es könnte sich auch um einen anderen Dienst handeln, der hin und wieder Gas drückt. Zum Beispiel Bloatware von HP, Dell usw.Davon abgesehen scheint die andere Antwort von TomWij für die Fehlerbehebung ganz nett zu sein!
quelle
Verify Signatures
Option zu aktivieren . Wenn(Verified) X
in derVerified Signer
Spalte angezeigt wird, wird dies von Microsoft überprüft und die ausführbare Datei istX
in diesem Fall Teil des Produkts / UnternehmensMicrosoft Windows
.C:\Windows\system32\wbem
Spalte " Überprüft" vorhanden und zeigt an, dass die Datei überprüft wurde. @TomWij