Kann ich mit dem Leistungsmonitor einen Datenerfassungssatz anhalten, wenn ein Prozess beendet wird?

1029
Bob

Ich debugiere gerade einen Programmabsturz und benötige im Laufe der Zeit Daten zur Speicherauslastung. Dieser Absturz tritt häufig nach längerer Öffnungszeit auf, insbesondere über Nacht.

Zu diesem Zweck habe ich einen Leistungsmonitor-Datenerfassungssatz definiert, um die Speicherauslastung des Prozesses zu protokollieren. Aufgrund der langen Laufzeit möchte ich die Zähler jedoch nicht unbegrenzt aktiv lassen. Und aufgrund der unbekannten Endzeit kann ich keine der Dauerendebedingungen verwenden:

Data Collector Set properties -- Stop Condition

Wie kann ich die Sammlung beenden, wenn der Prozess beendet ist?

1

1 Antwort auf die Frage

2
Bob

In Performance Monitor selbst scheint keine Option vorhanden zu sein, aber die Befehlszeilenschnittstelle ( logman) eröffnet die Möglichkeit für eine Skriptlösung.

PowerShell hat den Befehl Wait-Process, der blockiert, bis der angegebene Prozess endet.

Wenn wir diese kombinieren, erhalten wir die Lösung in PowerShell:

Wait-Process programname; sleep 30; logman stop datacollectorsetname 

Im Ruhezustand kann der Collector nach Abschluss des Prozesses ein oder zwei Einträge protokollieren.