% CPU by Process im Laufe der Zeit protokollieren

46074
PhantomDrummer

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

Soweit ich das beurteilen kann...

  1. Der Task-Manager zeigt mir die% CPU pro Prozess an, jedoch nur visuell - keine Möglichkeit, eine Datei zu speichern.
  2. Perfmon lässt mich in einer Datei speichern und erstellt zusätzlich eine zeitbasierte Datei (Momentaufnahmen in festgelegten Zeitintervallen) - was fast das ist, was ich will, außer, dass soweit ich sehen kann, das% nicht zusammenbricht. CPU nach Prozess
  3. Der Prozess-Explorer lässt mich nach Prozess aufbrechen, speichert die Datei jedoch nur als Momentaufnahme eines einzelnen Zeitpunkts

Ich brauche also keines dieser Dinge: Ich brauche eine Datei, die alle 15 Sekunden etwa zehn Top-10-Prozesse pro CPU enthält, bis ich die Überwachung aufhöre Einige Prozesse verursachen mehrmals am Tag gelegentlich kurze Spitzen in der CPU-Auslastung, und ich muss herausfinden, welcher Prozess der Täter ist.

Kann irgendetwas das tun, oder habe ich etwas von perfmon oder Process Explorer verpasst?

30

1 Antwort auf die Frage

28
Der Hochstapler

Process Monitor kann das für Sie tun.

Möglicherweise möchten Sie zunächst die Erfassung von Profilerstellungsereignissen aktivieren:

enter image description hereenter image description here

Sammeln Sie dann einfach so lange Daten, wie Sie möchten (Sie möchten möglicherweise Filter einrichten und Drop-down- Filter aktivieren, wenn Sie die Erfassung über einen längeren Zeitraum planen). Dann gehen Sie zu Tools -> Process Activity Summary:

enter image description here

Sie erhalten jetzt eine Liste aller aktiven Prozesse, die Sie aufgezeichnet haben, und deren Aktivität im Laufe der Zeit. enter image description here

Sie können dann die Details für einen einzelnen Prozess öffnen (durch Doppelklick darauf) und die Zeitstempel auf bestimmte Ereignisse im Diagramm überprüfen:

enter image description here

Vielen Dank. Das ist visuell ziemlich beeindruckend (ich fürchte, ich denke daran, wie viel Speicher es benötigt, wenn Sie es lange laufen lassen). Es ist auf jeden Fall nützlich, um auf dem Bildschirm sehen zu können, was Prozesse waren. Wenn ich jedoch auf dem Bildschirm mit der Zusammenfassung der Prozessaktivitäten auf "Speichern" klicke, wird immer noch ein Snapshot mit einem einzelnen Zeitpunkt und keine zeitabhängigen Daten gespeichert. PhantomDrummer vor 12 Jahren 1
@PhantomDrummer: Das Speichern und Laden von PML-Dateien funktioniert für mich hervorragend. Alle zuvor aufgezeichneten Ereignisse werden wiederhergestellt und stehen nach dem Laden einer PML für die Analyse zur Verfügung. Wählen Sie beim Speichern der Datei ** Alle Ereignisse **. Falls es einfach nicht funktionieren soll, lass es mich wissen und ich werde mehr Details in meine Antwort aufnehmen. Viel Glück :) Der Hochstapler vor 12 Jahren 0
Danke Oliver, ich habe es geschafft, die Prozessprofilierung zum Laufen zu bringen. Die Punkte, die ich übersehen hatte, waren, dass Sie Profilereignisse über den Filter aktivieren müssen. Dann kann ich aus dem Hauptfenster die Ereignisse in csv speichern. PhantomDrummer vor 12 Jahren 0
Eine weitere Maßnahme: Kann die Häufigkeit geändert werden, mit der der Prozessmonitor Profilerstellungsereignisse erfasst? Wir brauchen wirklich nur etwa alle 15 Sekunden, von dem, was ich von den Ergebnissen sehen kann, sammelt es mindestens jede Sekunde, und ich mache mir Sorgen, dass es zu viel Speicher / Dateigröße verbrauchen würde, da wir es laufen lassen müssen für ein oder zwei Tage. PhantomDrummer vor 12 Jahren 0
@PhantomDrummer: Gehen Sie zu Optionen -> Ereignisse zur Profilerstellung. Dort können Sie das Intervall auf 1s oder 100ms einstellen. Das ist soweit es geht. Wenn die Datei immer noch zu groß wird, müssen Sie strengere Filter einrichten und Drop Filtered Events aktivieren. Der Hochstapler vor 12 Jahren 1
@OliverSalzburg, Was ist der Unterschied zwischen "Process Monitor" und ["Process Explorer"] (https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)? Pacerier vor 9 Jahren 0
@Pacerier One ist ein Task-Manager, die anderen zeichnet Operationen auf, die von Tasks ausgeführt werden. Der Hochstapler vor 9 Jahren 0
@OliverSalzburg, ist "Process Monitor" nicht auch ein Task-Manager und in der Lage, die Aufgaben von Task-Managern auszuführen? Pacerier vor 9 Jahren 0
@ Pacerier: Ich würde dir empfehlen, sie einfach herunterzuladen und mit beiden Tools herumzuspielen. Vielleicht habe ich die falschen Begriffe gewählt, um sie zu beschreiben, aber Sie werden schnell feststellen, auf welche Weise beide Tools für Sie nützlich sein können. Der Hochstapler vor 9 Jahren 0
@OliverSalzburg, welche verwenden Sie generell? Pacerier vor 9 Jahren 0
Arent dort etwas einfacher? Es sieht so aus, als müssten Sie lernen, wie man es benutzt. Für eine kleine Überprüfung möchte ich nur die CPU-Nutzungszeiten des Prozesses haben, wenn die CPU-Nutzung höher als X% ist. Darius.V vor 9 Jahren 3
Das ist großartig, ich hatte diese Funktion noch nie gesehen. Ich möchte die gleichen Bedenken ansprechen, dass die Datenmenge über einen längeren Zeitraum zu viel für eine Erfassung sein könnte, dies würde jedoch wahrscheinlich für kurze (ähere) Intervalle gut funktionieren. Douglas Plumley vor 6 Jahren 0