Диспетчер задач%

Связанный с этим вопросом: Как счетчик Perfmon "% Processor Time" может быть больше 100%?

Я вручную наблюдал за процессами в диспетчере задач, когда пользователь сообщил о проблеме, а процесс Oracle использовал 80%-95% в течение длительного периода времени (5-15 минут).

Так что я использовал perfmon последние пару дней для отслеживания этого процесса и заметил, что он за короткое время перевалил за 100%, так что, очевидно, в perfmon это общая сумма по всем процессорам.

Мой вопрос заключается в том, что 80-95%, которые я видел в диспетчере задач, действительно соответствовали бы 160-180% в perfmon, верно?

(очевидно, что некоторые процессы не могут эффективно использовать все процессоры).

Диспетчер задач показывал 80-95% CPU здесь:

введите описание изображения здесь

Perf Monitor может показывать более 100% на линии для одного объекта процесса:

введите описание изображения здесь

1 ответ

Изучение данных о времени процессора на MSDN

В многопроцессорных системах значение Processor\% Processor Time, сообщаемое System Monitor, никогда не будет превышать 100 процентов для любого конкретного процессора или потока.

С другой стороны, значение% процессорного времени, сообщаемое для объекта Process, может сообщать значения более 100 процентов; если такие значения встречаются, это может указывать на то, что потоки процесса кумулятивно используют более 100 процентов процессора.


В основном это говорит о том, что при изучении Процесса (с несколькими путями исполнения) вы увидите более 100%, если код будет работать одновременно более чем одним ядром. У процесса есть несколько доступных ядер, и он может работать на нескольких.

С другой стороны, если вы исследуете поток процессора, вы никогда не увидите значение выше 100%, поскольку это фактический измеряемый ресурс. CPU Thread - это то, что Microsoft говорит за CPU Core: в ядре с поддержкой HT есть два потока.

Другие вопросы по тегам