% CPU nach Prozess im Zeitverlauf protokollieren

39

Gibt es unter Windows eine einfache Möglichkeit, die prozentuale CPU-Zeit pro Prozess für eine spätere Analyse in einer Datei zu protokollieren?

Soweit ich das beurteilen kann...

  1. Der Task-Manager zeigt mir die% -CPU pro Prozess an, jedoch nur visuell - keine Möglichkeit zum Speichern in einer Datei.
  2. Mit Perfmon kann ich in einer Datei speichern und zusätzlich eine zeitbasierte Datei erstellen (Schnappschüsse in festgelegten Zeitintervallen erstellen) - das ist fast das, was ich will, außer dass, soweit ich das sehe, die% nicht auflösen kann. CPU von Prozess.
  3. Mit Process Explorer kann ich nach Prozessen aufschlüsseln, die Datei wird jedoch nur als Momentaufnahme eines einzelnen Zeitpunkts gespeichert

Keines davon ist also genau das, was ich brauche: Ich muss alle 15 Sekunden eine Datei abrufen, die so etwas wie „Top 10-Prozesse pro CPU“ enthält, bis ich die Überwachung beende Bei einigen Prozessen kommt es mehrmals täglich zu kurzen CPU-Auslastungsspitzen, und ich muss herausfinden, welcher Prozess der Schuldige ist.

Kann irgendetwas das tun oder habe ich eine Funktion von Perfmon oder Process Explorer verpasst?

PhantomDrummer
quelle

Antworten:

37

Process Monitor kann das für Sie erledigen.

Möglicherweise möchten Sie zuerst die Erfassung von Profiling-Ereignissen aktivieren:

Bildbeschreibung hier eingebenBildbeschreibung hier eingeben

Sammeln Sie dann einfach so lange Daten, wie Sie möchten (Sie können Filter einrichten und Ereignisse mit Filter löschen aktivieren, wenn Sie vorhaben, über einen längeren Zeitraum hinweg Daten zu sammeln). Gehen Sie dann zu Tools -> Process Activity Summary:

Bildbeschreibung hier eingeben

Sie erhalten nun eine Liste aller aktiven Prozesse, die Sie aufgezeichnet haben, mit ihrer Aktivität im Laufe der Zeit. Bildbeschreibung hier eingeben

Sie können dann die Details für einen einzelnen Prozess öffnen (indem Sie darauf doppelklicken) und die Zeitstempel auf bestimmte Ereignisse in der Grafik überprüfen:

Bildbeschreibung hier eingeben

Der Hochstapler
quelle
1
Vielen Dank. Das ist optisch ziemlich beeindruckend (ich fürchte, zu überlegen, wie viel Speicher verwendet wird, wenn Sie ihn lange laufen lassen). Dies ist sicherlich hilfreich, um auf dem Bildschirm sehen zu können, welche Prozesse ausgeführt wurden. Wenn ich jedoch im Bildschirm mit der Zusammenfassung der Prozessaktivitäten auf "Speichern" klicke, wird immer noch ein Einzelzeit-Snapshot ohne zeitabhängige Daten gespeichert.
PhantomDrummer
@PhantomDrummer: Das Speichern und Laden von PML-Dateien funktioniert bei mir hervorragend. Alle zuvor aufgezeichneten Ereignisse werden wiederhergestellt und stehen nach dem Laden einer PML zur Analyse zur Verfügung. Stellen Sie sicher, dass Sie Alle Ereignisse auswählen , wenn Sie die Datei speichern. Falls es einfach nicht funktionieren soll, lass es mich wissen und ich werde mehr Details in meine Antwort aufnehmen. Viel Glück :)
Der Hochstapler
1
@PhantomDrummer: Gehen Sie zu Optionen -> Ereignisse profilieren. Dort können Sie das Intervall auf 1s oder 100ms einstellen. Das ist so weit wie es geht. Wenn die Datei immer noch zu groß wird, müssen Sie strengere Filter einrichten und Drop Filtered Events aktivieren.
Der Hochstapler
1
@Pacerier One ist ein Task-Manager, der andere zeichnet Vorgänge auf, die von Tasks ausgeführt werden.
Der Hochstapler
6
Gibt es etwas einfacheres? Das sieht so aus, als müsst ihr erst lernen, wie man es benutzt. Für eine kleine Überprüfung möchte ich nur die CPU-Nutzungszeiten des Prozesses haben, wenn die CPU-Auslastung höher als X% ist
Darius.V