По теме этого вопроса:Как счетчик Perfmon «% Processor Time» может превышать 100%?
Я вручную наблюдал за процессами в диспетчере задач, когда пользователь сообщил о проблеме, и процесс Oracle использовал 80%-95% в течение длительного периода времени (5-15 минут).
Итак, я последние пару дней использовал perfmon, чтобы отслеживать этот процесс, и заметил, что в короткие периоды он превышал 100%. Видимо, в perfmon это общий показатель по всем процессорам.
Мой вопрос заключается в том, что 80–95%, которые я видел в диспетчере задач, на самом деле соответствовали 160–180% в Perfmon, верно?
(разумеется, с учетом того, что некоторые процессы не смогут эффективно использовать все процессоры).
Диспетчер задач показывал загрузку ЦП на уровне 80-95%:
Perf Monitor может достигать пикового значения выше 100% на линии для одного объекта процесса:
решение1
Изучение данных о времени процессора на MSDN
В многопроцессорных системах значение Processor\% Processor Time, отображаемое системным монитором, никогда не превысит 100 процентов для любого конкретного процессора или потока.
С другой стороны, значение % загруженности процессора для объекта «Процесс» может превышать 100 процентов. Если такие значения встречаются, это может означать, что потоки процесса в совокупности используют более 100 процентов ресурсов процессора.
По сути, это говорит о том, что при изучении процесса (с несколькими путями выполнения) вы увидите более 100%, если код выполняется одновременно на нескольких ядрах. Процессу доступно несколько ядер, и он может выбрать для выполнения несколько из них.
С другой стороны, если исследовать поток ЦП, вы никогда не увидите значение выше 100%, поскольку это фактический измеряемый ресурс. Поток ЦП — это сленг Microsoft для ядра ЦП: в ядре с поддержкой HT есть два потока.