Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ursache für hohe CPU Auslastung ermitteln oder warum lastet Programm XYZ meine CPU so aus?
#1
Ok, ihr habt dieses Tutorial gefunden, weil ihr im Process Explorer, Process Hacker oder im Taskmanager eine zu hohe CPU Auslastung seht und nun den Grund wissen möchtet.



<span style='color: #FF0000'>Wenn ihr diese Ansicht findet:





Bild: http://i.imgur.com/9YvFdUY.png



dann habt ihr ein Treiberproblem, dass in http://www.winvistaside.de/forum/index.php?showtopic=3090 behandelt wird.
</span>







In diesem Tutorial zeige ich wie ihr den Grund für eine hohe CPU Auslastung von Windows Diensten oder Programmen erkennen könnt.



Dazu müsst ihr wieder, falls nicht schon installiert, das Windows Performance Toolkit herunterladen und installieren. Die Links findet ihr http://www.winvistaside.de/forum/index.php?showtopic=4993.



Wenn ihr ein 64Bit Windows Vista oder Windows 7 benutzt, müsst ihr den Wert DisablePagingExecutive auf 1 setzen und den PC neu starten. Das geht am einfachsten, wenn ihr die Eingabeaufforderung (cmdexe) mit http://www.winvistaside.de/forum/index.php?s=&showtopic=137&view=findpost&p=24740 startet und diesen Befehl ausführt:



Code:
REG ADD "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v DisablePagingExecutive -d 0x1 -t REG_DWORD -f


Um die Ursache der hohen CPU Auslastung zu analysieren startet ihr die http://www.winvistaside.de/forum/index.php?s=&showtopic=137&view=findpost&p=24740 und tippt folgendes ein:



Code:
xperf -on latency -stackwalk profile


nun führt ihr die Aktion aus, die die hohe CPU Auslastung verursacht.



Wenn ihr eine gewissen Zeit gewartet habt und somit genug Daten gesammelt habt, könnt ihr den Trace anhalten:



Code:
xperf -d latency.etl


Nachdem alles analysiert wurde befinden sich in dem Verzeichnis die latency.etl Datei, die ihr dann mit dem Tool xperfview.exe öffnen müsst.



Nachdem ihr die etl Datei geladen habt, geht ihr auf Trace-Configure Symbol Path und gebt dort folgendes ein:



Code:
srv*C:\symbols*http://msdl.microsoft.com/download/symbols


und klickt auf Ok. Nun geht ihr auf "Trace->Load Symbols", dabei werden sogenannte Debuginformationen von einem Microsoft Server geladen, die man benötigt um die Ursache besser finden zu können.



ACHTUNG: DIESER VORGANG DAUERT ETWAS UND LÄDT TEILS GROßE DATEIEN HERUNTER. Als 56kModem/ISDN oder DSL light Nutzer solltet ihr das das Ausführen überdenken.



Nun markiert ihr in dem Diagramm "CPU Sampling per CPU" den Bereich mit der hohen CPU Auslastung, macht einen Rechtsklick und geht auf Summary Table und schaut welches Programm die hohe CPU Auslastung verursacht:





Bild: http://i.imgur.com/3VUp3Vj.png



In meinem Fall ist da der TrustedInstaller, der Windows Updates installiert oder die installierten Windowsfunktionen an oder ausschaltet. Nun geht ihr wieder zu dem Diagramm "CPU Sampling per CPU", wählt "C l o n e Selection" und geht zu dem Graph "Stack Counts by Type" und macht dort wieder einen Rechtsklick und wählt "Summary Table". Nun sortiert ihr die Anzeige nach "Count: Sampled Profile" und sucht die Anwendung mit der hohen CPU Auslastung und erweitert den Knoten der Anwendung soweit bis ihr seht welche DLL bzw. welche Funktion dieser DLL die hohe Auslastung verursacht.



Ich habe diese Technik angewandt um zu sehen, warum der Trusted Installer bei mir eine hohe CPU Auslastung verursacht und dabei das entdeckt:





Bild: http://i.imgur.com/1PWEQEs.png



Bei mir kommt die CPU Auslastung bei der Auflistung der installierten Windows Updates/Windows Pakete (Resolve-Packages und deren Funktionen zum Auflisten der Windows Pakete).



Wenn ihr bei der Auflistung nur eine DLL mit einem ? dahinter seht, dann kann xperf keine Debug Dateien finden. Dies tritt bei einigen Microsoft Tools auf (MSE, Office), da Microsoft die Debug Dateien nicht veröffentlicht.



Die Technik könnt ihr auch bei eigenen C++ Programmen verwenden. Fügt bei SymbolPath den Pfad zu dem Verzeichnis ein, bei dem das Visual Studio die PDB Dateien nach dem Kompilieren ablegt. Somit spart ihr euch das Geld für einen teuren Profiler.



Ich hoffe ihr findet mit dem Tool auch die Ursache für die hohe CPU Auslastung bei eurem PC. Wenn ihr Fragen habt oder ich die Datei analysieren soll, dann fragt hier und gebt mir die Datei.
Antworten
#2
Wenn der Dienst "PresentationFontCache.exe" eine hohe CPU Auslastung verursacht, dann probiert mal diesen Tipp:



http://www.winvistaside.de/forum/index.php?showtopic=3317
Antworten
#3
Hallo,
ich bin deiner Anleitung soweit gefolgt (Installation etc.-alles klar) und wollte schauen, warum die WmiPrvSE.exe soviel Leistung in Anspruch nimmt.
Leider kann ich den Performance-Test nicht durchführen, da ich den Fehler wie im Bild erhalte und nicht weiß was ich machen soll.
Über Hilfe bin ich sehr dankbar!


P.S.
Ich hab Win7 Pro (64Bit)

Ciao,
Jokoo
Antworten
#4
Hallo Jokoo. Du musst die Eingabeaufforderung mit Adminrechten starten. Installeire dir am Besten diese Explorer Erweiterung:



http://www.winvistaside.de/forum/index.php?s=&showtopic=137&view=findpost&p=24740



und erstelle dir einen Ordner C:\temp, und öffne dort die Eingabeaufforderung als Administrator.



Bei einem 64Bit Windows musst du noch den Wert DisablePagingExecutive auf 1 setzen und neu starten.
Antworten
#5
Hi,
vielen Dank für den Tipp, jetzt hat das schon einmal geklappt!
Nun zur Auswertung:
Ich habe 2 Screenshots gemacht und die Prozesse bis in die letzte Ebene geöffnet. Wie eliminiere ich die Leistungsfresser dauerhaft?
Also ich habe eine verschlüsselte Festplatte, ich denke das dürfte aber kein Problem sein! Ich glaube, das Problem tritt vorrangig auf, wenn ich den Rechner aus dem Ruhezustand reaktiviere.

Hier nun die Bilder der Auswertung:






Vielen Dank!
Antworten
#6
Ich erkenne Registryzugriffe, also musst du noch etwas hinzufügen:



Code:
Xperf -on latency+REGISTRY -stackwalk profile+RegQueryKey+RegOpenKey


zippe die etl und lad sie auf mediafire.com und poste den Link hier.
Antworten
#7
Also es wird immer auf diesen Zweig \REGISTRY\Machine\SOFTWARE\Microsoft\wbem\CIMOM



Welchen Wert hat der Eintrag Logging?



http://msdn.microsoft.com/en-us/library/aa392285%28v=vs.85%29.aspx



Schalte das Logging mal ab.
Antworten
#8
Hm, das war schon auf "0" gesetzt.
Antworten
#9
dann lasse bitte den Prozessmonitor (ProcMon) von Sysinternals laufen und schaue welche Werte dort immer abgefragt werden.
Antworten
#10
soll ich das logfile hochladen?
Antworten
#11
filter einfach mal alle anderen Programme außer WmiPrvSE.exe raus und schau mal ob du etwas erkennst. Wenn nicht, dann packe sei und lad sie hoch
Antworten
#12
also der ist auf jeden fall dabei, was zu loggen. aber wie gesagt, der benannte wert ist definitiv auf "0".

so hier das logfile, gefiltert. ich hab die svchost und die wmiprvse drin, da die ja das meiste brauchen.

http://www.mediafire.com/?a9ht0u19eed3y7m



beste grüße und schon mal danke!
Antworten
#13
du musst die Log als PML abspeichern
Antworten
#14
so jetzt: http://www.mediafire.com/?lg64ptpmtvvt208

ich dachte die gefilterte reicht.
Antworten
#15
die Exceldatei kann ich aber schlecht in ProcMon öffnen, das geht mit der PML dagegen und ich sehe das gleiche wie du in ProcMon. So kann ich nach meinen Ideen mit ProcMon in die Daten schauen.

Setze den Logging-Wert mal auf 2 und begrenze die Größe der log auf 50MB (Logging File Max Size 50000). Stoppe und starten den WMI Dienst erneut und schau unter %windir%\system32\wbem\logs in der Log was WMI da so alles macht.

Wenn das nichts bringt, muss du auf die altmodische "Clean-Boot" Trial and Error Version zurückgreifen und mal die ganzen Drittherstellertools von HP, Norton, Nokia etc stoppen udn schauen welches Programm die WMI Queries ausführt.
Antworten
#16
Vielen Dank für die Hilfe! Ich glaube der PowerAssistent von HP war bei mir des Fehlers Ursache. Jetzt ist er deaktiviert und die WMIPRVSE.EXE ist nur noch 1-2 min aktiv und dann ist sie ruhig. Ich klopfe auf Holz Wink.
Antworten
#17
und hat es sich bestätigt? Leider ist es aus den Daten nie ersichtlich welches Programm die WMI Abfragen ausführt.
Antworten
#18
Hallo!

Also es hat sich bestätigt!

Der HP Power Assistent (PA) und der HP Connection Manager (CM) stehen sich im Weg. Ich habe beide aktualisiert und trotzdem passierte das weiter, dass die Systemauslastung zu hoch war. Ich denke das Problem ist, das beide Programme Einfluss auf die Energieverwaltung von WLAN, Bluetooth, GPS und UMTS nehmen.



Nun die einfache Lösung:

Über den <span class='bbc_underline'>neuen </span> PA kann man ganz einfach BT, WLAN, etc. steuern. Somit habe ich den CM deaktiviert und das Problem hat sich erübrigt. Windows kann also eigentlich gar nichts dafür Wink.



Ich danke dir für die Hilfe!
Antworten
#19
ok, schön, dass es nun behoben ist Smile

Wenn du wieder Fragen kannst kannst du sie wieder bei uns stellen Smile
Antworten
#20
<p class='bbc_center'><span style='color: #FF0000'>Durch die Benutzung des WPT aus dem Windows 8 SDK ist der Guide auch für Windows 8 benutzbar.</span>
Antworten


Gehe zu: