Журнал% CPU по процессам с течением времени

45932
PhantomDrummer

Есть ли в Windows простой способ записать% процессорного времени на процесс в течение времени в файл для последующего анализа?

Насколько я вижу...

  1. Диспетчер задач показывает мне% ЦП на процесс, но только визуально - нет способа сохранить в файл.
  2. Perfmon позволит мне сохранить в файл и дополнительно создаст файл на основе времени (снимки через определенные промежутки времени) - это почти то, что я хочу, за исключением того, что, насколько я вижу, он не может разбить% Процессор за процессом.
  3. Process Explorer позволит мне разбить процесс, но он сохранит файл только как снимок одного момента времени

Итак, ни один из них не является тем, что мне нужно: мне нужно получить файл, который содержит что-то вроде «топ-10 процессов по процессору, каждые 15 секунд, пока я не прекращаю мониторинг». Причина, по которой мне это нужно, потому что у меня есть машина, на которой какой-то процесс вызывает случайные короткие скачки загрузки процессора несколько раз в день, и мне нужно выяснить, какой процесс является виновником.

Может ли что-нибудь сделать это, или я пропустил какую-то особенность perfmon или Process Explorer?

30

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

28
Der Hochstapler

Process Monitor может сделать это за вас.

Сначала вы можете захотеть включить сбор событий профилирования:

enter image description hereenter image description here

Затем просто собирайте данные столько времени, сколько хотите (вы можете настроить фильтры и включить удаление отфильтрованных событий, если вы планируете собирать данные в течение продолжительных периодов времени). Затем перейдите в Инструменты -> Сводка активности процесса:

enter image description here

Теперь вы получите список всех активных процессов, которые вы записали, с указанием их активности с течением времени. enter image description here

Затем вы можете открыть детали для одного процесса (дважды щелкнув по нему) и проверить временные метки для определенных событий на графике:

enter image description here

Благодарю. Это выглядит довольно впечатляюще (мне страшно подумать, сколько памяти он использует, если оставить его работать долго). Это, безусловно, полезно для возможности видеть на экране, что делали процессы. Тем не менее, если я нажимаю «Сохранить» на экране сводки активности процесса, то сохраняемый снимок остается моментальным снимком на определенный момент времени, без данных, зависящих от времени. PhantomDrummer 11 лет назад 1
@PhantomDrummer: Сохранение и загрузка файлов PML отлично работает для меня. Все ранее записанные события восстанавливаются и доступны для анализа после загрузки PML. Убедитесь, что выбрали ** Все события ** при сохранении файла. Если он просто не хочет работать, дайте мне знать, и я включу больше деталей в свой ответ. Удачи :) Der Hochstapler 11 лет назад 0
Спасибо Оливер, мне удалось заставить процесс профилирования работать. Я пропустил то, что вам нужно включить события профиля через фильтр. Затем из главного окна я могу сохранить события в CSV. PhantomDrummer 11 лет назад 0
Одно последующее замечание: возможно ли изменить частоту, с которой монитор процесса собирает события профилирования? Нам действительно нужно примерно каждые 15 секунд, насколько я вижу, результаты, которые он собирает, по крайней мере, каждую секунду, и я беспокоюсь, что это может израсходовать слишком много памяти / размера файла, так как нам нужно оставить его работающим на день или два. PhantomDrummer 11 лет назад 0
@PhantomDrummer: выберите «Настройки» -> «Профилирование событий». Там вы можете установить интервал в 1 с или 100 мс. Это так далеко, как это идет. Если файл все еще становится слишком большим, вы должны установить более строгие фильтры и включить Drop Filtered Events. Der Hochstapler 11 лет назад 1
@OliverSalzburg, В чем разница между «Process Monitor» и «Process Explorer»] (https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)? Pacerier 9 лет назад 0
@Pacerier One - это менеджер задач, остальные записывают операции, выполняемые задачами. Der Hochstapler 9 лет назад 0
@OliverSalzburg, разве «Process Monitor» также не является диспетчером задач и способен делать то, что делают менеджеры задач? Pacerier 9 лет назад 0
@Pacerier: Я бы порекомендовал вам просто скачать их и поиграть с обоими инструментами. Возможно, я выбрал неправильные термины для их описания, но вы быстро заметите, как оба инструмента могут быть полезны для вас. Der Hochstapler 9 лет назад 0
@OliverSalzburg, что ты вообще используешь? Pacerier 9 лет назад 0
Есть что-то более простое? Похоже, вам нужно научиться его использовать. Для небольшой проверки я просто хочу, чтобы время загрузки процессора превышало X%. Darius.V 9 лет назад 3
Это круто, я не видел эту функцию раньше. Я повторю те же опасения, что объем данных может быть слишком большим для захвата в течение длительного периода времени, но это, вероятно, будет работать хорошо для коротких (er) интервалов. Douglas Plumley 5 лет назад 0