2008-09-16 6 views
131

Ich vermute, dass eine meiner Anwendungen mehr CPU-Zyklen isst, als ich es möchte. Das Problem ist - es passiert in Bursts, und nur der Task-Manager zu sehen, hilft mir nicht, da es nur die unmittelbare Verwendung anzeigt.Tracking CPU und Speicherverbrauch pro Prozess

Gibt es eine Möglichkeit (unter Windows), den Verlauf der CPU & Speicherverbrauch für einige Prozesse zu verfolgen. Z.B. Ich werde anfangen, "firefox" zu verfolgen, und nach einer Stunde oder so wird ein Diagramm seiner CPU & Speicherverwendung während dieser Stunde sehen.

Ich suche entweder ein vorgefertigtes Werkzeug oder einen programmatischen Weg, um dies zu erreichen.

Antwort

142

Geben Sie einfach perfmon in Start > Run ein und drücken Sie die Eingabetaste. Wenn das Performance-Fenster geöffnet ist, klicken Sie auf das Pluszeichen, um dem Diagramm neue Indikatoren hinzuzufügen. Die Zähler sind unterschiedliche Aspekte der Funktionsweise Ihres PCs und werden nach Ähnlichkeit in Gruppen gruppiert, die als "Leistungsobjekt" bezeichnet werden.

Für Ihre Fragen können Sie die Leistungsobjekte "Prozess", "Speicher" und "Prozessor" auswählen. Sie können dann diese Zähler in Echtzeit sehen

Sie können auch das Dienstprogramm angeben, um die Leistungsdaten für Ihre Inspektion später zu speichern. Wählen Sie dazu im linken Bereich "Performance Logs and Alerts". (Es befindet sich direkt unter der Systemmonitor-Konsole, die uns die oben genannten Zähler zur Verfügung stellt. Wenn es nicht dort ist, klicken Sie auf "Datei"> "Snap-In hinzufügen/entfernen", klicken Sie auf Hinzufügen und wählen Sie "Leistungsprotokolle und Warnungen" in der Liste ".) Erstellen Sie unter" Leistungsindikatoren und Warnungen "eine neue Überwachungskonfiguration unter" Zählerprotokolle ". Anschließend können Sie die Zähler hinzufügen, die Abtastrate, das Protokollformat (Binär- oder Klartext) und den Protokollspeicherort festlegen.

+1

Was ist das ideale Intervall, um ein Datensample in einem Zählerprotokoll zu erfassen? –

+6

MS hat offensichtlich die Benutzeroberfläche zu PerformanceMonitor geändert, seit Sie dies geschrieben haben. Irgendeine Idee, wie Sie das in Windows 2008 R2 machen? –

+0

@MartinBrown, offene "Überwachungswerkzeuge"> "Leistungsmonitor". Klicken Sie mit der rechten Maustaste auf den weißen Bildschirm und fügen Sie Zähler hinzu. – JNF

1

Hmm, ich sehe, dass Process Explorer kann es tun, obwohl seine Grafiken nicht zu bequem sind. Ich suche immer noch nach alternativen/besseren Möglichkeiten.

2

Perfmon.exe ist in Windows integriert.

38

Process Explorer kann die gesamte von einem Prozess belegte CPU-Zeit sowie ein Verlaufsdiagramm pro Prozess anzeigen.

+0

Also wie würden Sie es verwenden, um einen Prozess zu finden, der nach dem Zufallsprinzip beginnt, mehr Speicher oder Prozessorleistung in einem kurzen Burst zu verwenden. Könnten Sie das näher ausführen? – Xitcod13

+0

Klicken Sie mit der rechten Maustaste auf die Spaltenüberschriften, wählen Sie Spalten auswählen und dann unter "Prozessleistung" die Option "CPU-Verlauf". – Laurent

+0

können Sie sie auf Null zurücksetzen? –

7

Ich stimme zu, perfmon.exe können Sie Zähler hinzufügen (Rechtsklick auf das rechte Feld) für jeden Prozess, den Sie überwachen möchten.

Leistungsobjekt: Prozess Markieren Sie "Instanzen aus Liste auswählen" und wählen Sie firefox.

+0

Danke. Wie sehe ich die Geschichte der CPU-Nutzung über eine vordefinierte Zeit, wie eine Stunde? –

5

WMI ist Windows-Verwaltungsinstrumentation und ist in allen neuen Windows-Versionen integriert. Sie können damit programmgesteuert Dinge wie CPU-Auslastung, Festplatten-I/O und Speichernutzung verfolgen.

Perfmon.exe ist ein GUI-Front-End für diese Schnittstelle und kann einen Prozess überwachen, Informationen in ein Protokoll schreiben und Ihnen die Analyse des Protokolls nachträglich ermöglichen. Es ist nicht das eleganteste Programm der Welt, aber es erledigt den Job.

+4

Technisch Perfmon ist eine Schnittstelle zu der zugrunde liegenden Windows Performance Counter API, die WMI um viele Jahre vorausgeht. WMI stellt auch die Leistungsindikator-API in seinem Namespace zur Verfügung. –

2

Process Lasso ist eher für Prozessautomatisierung und Prioritätsklassenoptimierung gedacht, nicht für Graphen.Das heißt, bietet pro Prozessor Prozessnutzungshistorie (gezeichnet als eine weiße Linie in der Grafik) aber es NICHT Angebot per -Verarbeiten Sie die Speicherauslastungshistorie.

DISCLAIMER: Ich bin der Autor von Process Lasso, aber ich befürworte es hier nicht wirklich - da es bessere Lösungen gibt (perfmon ist die beste).

Das Beste, was jemals ist, ist Windows Vista + Ressourcen-und Systemmonitor. Es kann die Nutzung von CPU-, Speicher-, Netzwerk- und Festplattenzugriffen durch Prozesse über die Zeit verfolgen. Es ist ein großartiges Systeminformationsprogramm, das schon vor langer Zeit erstellt worden sein sollte. Wenn ich mich nicht irre, kann es im Laufe der Zeit pro-process CPU und Speicherauslastung (unter den anderen aufgelisteten Dingen) verfolgen.

14

Mit perfmon.exe habe ich versucht, den Zähler "Private Bytes" unter "Process" -Zähler für die Verfolgung der Speicherbelegung zu verwenden, und es funktioniert gut.

6

vielleicht können Sie dies verwenden. Es sollte für Sie arbeiten und Prozessorzeit für den angegebenen Prozess melden.

@echo off 
: Rich Kreider <[email protected]> 
: report processor time for given process until process exits (could be expanded to use a PID to be more 
: precise) 
: Depends: typeperf 
: Usage: foo.cmd <processname> 

set process=%~1 
echo Press CTRL-C To Stop... 
:begin 
for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do (
if %%~c==-1 (
goto :end 
) else (
echo %%~c%% 
goto begin 
) 
) 

:end 
echo Process seems to have terminated. 
1

Obwohl ich dies aus nicht versucht haben, scheint ProcDump wie eine bessere Lösung.

Beschreibung von Standort:

ProcDump ist ein Befehlszeilenprogramm primäre Zweck dessen ist die Überwachung einer Anwendung für CPU-Spitzen und Crash Erzeugung während eines Spike-Dumps, die ein Administrator oder Entwickler verwenden können, um die Ursache der Spitze zu bestimmen, . ProcDump enthält außerdem die Überwachung von angehaltenem Fenster (mit der gleichen Definition eines Fensters, das Windows und der Task-Manager verwenden), die Überwachung nicht behandelter Ausnahmen und kann Sicherungen basierend auf den Werten der Systemleistungsindikatoren generieren. Es kann auch als allgemeines Prozessabbilddienstprogramm dienen, das Sie in andere Skripts einbetten können.

0

Ich benutze taskinfo für Verlaufsgrafik der CPU/RAM/IO-Geschwindigkeit. http://www.iarsn.com/taskinfo.html

Aber Ausbrüche der Reaktionslosigkeit, klingt mehr wie Interrupt-Zeit aufgrund einer Fedy HD/SS-Laufwerk.