Можно ли заставить системный монитор останавливать набор сборщиков данных при выходе из процесса?

930
Bob

В настоящее время я отлаживаю сбой программы, и мне нужны данные об использовании памяти с течением времени. Этот сбой часто случается после длительного периода времени, особенно в течение ночи.

С этой целью я определил набор сборщиков данных системного монитора для регистрации использования памяти процессом. Однако из-за продолжительного времени работы я не хочу оставлять счетчики активными на неопределенный срок. И из-за неизвестного времени окончания я не могу использовать любое из условий остановки продолжительности:

Data Collector Set properties -- Stop Condition

Как я могу остановить сбор, когда процесс заканчивается?

1

1 ответ на вопрос

2
Bob

Хотя в самом Performance Monitor, кажется, нет опции, интерфейс командной строки ( logman) открывает возможность для решения на основе сценариев.

PowerShell имеет команду Wait-Process, которая блокирует до завершения указанного процесса.

Объединяя их, мы получаем решение в PowerShell:

Wait-Process programname; sleep 30; logman stop datacollectorsetname 

В спящем режиме есть время, чтобы сборщик мог зарегистрировать одну или две записи после завершения процесса.