
Я пытался найти наилучший способ измерения загрузки ЦП процессами в системе 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» Марка Руссиновича и Аарона Маргосиса как инструмент, позволяющий отобразить наиболее подробную информацию.
Редактировать: Возможность отслеживания прерываний может быть очень полезна и для других задач, отладки программного обеспечения и поиска неисправных драйверов.