Какой наиболее точный способ измерения загрузки процессора процессами в системах на базе Windows?

Какой наиболее точный способ измерения загрузки процессора процессами в системах на базе Windows?

Я пытался найти наилучший способ измерения загрузки ЦП процессами в системе Windows Server 2012R2 и обнаружил, что существует множество несоответствий между методами, используемыми для измерения загрузки.

Первоначально я пытался отслеживать загрузку ЦП с помощью диспетчера задач, но он дает только моментальный снимок загрузки, а не данные за определенный период времени, поэтому я решил использовать другие инструменты, такие как procmon или Process Explorer, но ни один из них не выдает одинаковые цифры или даже рейтинги процессов.

Вот несоответствия:

1) Вкладка "процессы" и вкладка "подробности" диспетчера задач показывают совершенно разные значения для "% использования ЦП" и рейтинг среди этих процессов. Например, вкладка "процессы" показывает это:

  • abc.exe %24
  • 123.exe %10
  • sdf.exe %3

тогда как на вкладке «Подробности» отображается:

  • простаивает %55 (это не странная часть)
  • sdf.exe %11
  • ert.exe %9
  • abc.exe %7

2) В Process Explorer CPU% показывает разные значения по сравнению с вкладками «Процессы» и «Подробности» диспетчера задач: я понимаю, что значения могут отображаться с задержкой или небольшими несоответствиями, но значения, показанные во всех трех местах, практически полностью отличаются, как и в примере выше.

3) Process Monitor также выдает противоречивую информацию о рейтинге процессов с точки зрения использования ЦП: хотя ProcMon не выдает процентные значения процессов, рейтинг этих процессов (с точки зрения времени ЦП) не соответствует рейтингу ни Process Explorer, ни Task Managers.

Подводя итог, вопрос звучит так: какое из этих измерений даст наиболее точное представление об использовании ЦП процессами и почему?

решение1

Наиболее точным является Process Explorer по следующим причинам:

  • он показывает процент использования ЦП для каждого процесса, округленный по умолчанию до двух десятичных знаков, а не до целого числа
  • отслеживает время, потраченное на обслуживание прерываний и DPC, и отображает их отдельно от процесса Idle (диспетчер задач этого не делает)
  • он использует дополнительные системные метрики, чтобы можно было идентифицировать процессы, потребляющие небольшое количество ресурсов ЦП, и, когда это возможно, предоставлять более точный отчет о фактическом потреблении ресурсов ЦП

PE — это подробный инструмент, который упоминается в «Справочнике администратора Windows Sysinternals» Марка Руссиновича и Аарона Маргосиса как инструмент, позволяющий отобразить наиболее подробную информацию.

Редактировать: Возможность отслеживания прерываний может быть очень полезна и для других задач, отладки программного обеспечения и поиска неисправных драйверов.

Связанный контент