Я пытался найти лучший способ измерить использование ЦП процессами в системе Windows Server 2012R2 и обнаружил, что между методами, используемыми для измерения использования, есть много несоответствий.
Первоначально я смотрел, как загрузка ЦП - это диспетчер задач, но он дает вам только моментальный снимок использования, а не данные за определенный период времени, поэтому я решил использовать другие инструменты, такие как procmon или process explorer, но не любой из у этих двоих одинаковые числа или даже ранжирование процессов.
Вот несоответствия:
1) Вкладка «процессы» диспетчера задач и вкладка «сведения» показывают совершенно разные значения для «% использования ЦП» и ранжирования среди этих процессов. Например, вкладка процессов показывает это:
тогда как на вкладке «подробности» отображается:
2) Process Explorer CPU% показывает разные значения по сравнению с вкладкой «Процессы» диспетчера задач и вкладкой «Подробности»: я понимаю, что значения могут отображаться с задержкой или незначительными несоответствиями, но значения, показанные во всех трех местах, почти полностью разные, как в примере выше.
3) Process Monitor также выдает противоречивую информацию о ранжировании процессов с точки зрения использования ЦП: хотя ProcMon не дает процентных значений процессов, ранжирование среди этих процессов (с точки зрения времени ЦП) не соответствует ни одному из Process Explorer или рейтинг менеджеров задач.
В итоге возникает вопрос: какое из этих измерений даст наиболее точное представление об использовании ЦП между процессами и почему?
Наиболее точным является Process Explorer по следующим причинам:
PE - это подробный инструмент, который упоминается в «Справочнике администратора Windows Sysinternals» Марком Руссиновичем и Аароном Маргозисом как инструмент для отображения наиболее подробной информации.
Изменить: возможность отслеживать прерывания может быть очень полезна и для других задач, отладки программного обеспечения и поиска неисправных драйверов.