Я использую следующий запрос WMI, чтобы получить данные о проценте загрузки процессора.
Выберите * из win32_processor, и результаты будут записаны ниже.
Результаты запроса Win32_processor WMI
Из приведенных выше данных следует понимать, что доступны два экземпляра физических процессоров (CPU0 и CPU1).
Но на некоторых машинах наблюдается, что параметр процента загрузки для этих экземпляров всегда дает значение 100, и Microsoft рекомендует использовать следующий класс WMI, чтобы исправить это. Итак, для той же машины ниже выполняется запрос WMI.
Выберите * из Win32_PerfFormattedData_Counters_ProcessorInformation, и результаты будут записаны, как показано ниже.
Win32_PerfFormattedData_Counters_ProcessorInformation Результаты запроса WMI
В приведенных выше результатах для одного и того же компьютера класс win32_Processor дает два экземпляра, а win32_PerfFormattedData_Counters_ProcessorInformation дает один экземпляр (другие данные, такие как 0,0, 0,1, 0,2,0,3, предназначены для ядер, а не экземпляров процессора).
Я предполагал, что в качестве экземпляров процессора он даст 0, _Total и 1, _Total. _Total - это процент загрузки всех процессоров.
Примечание: Приведенные выше результаты основаны на виртуальной машине. У вас нет физической машины с двумя физическими процессорами для проверки. Но я предполагаю, что класс wi32_processor предоставляет данные для двух экземпляров физических процессоров, поэтому win32_PerfFormattedData_Counters_ProcessorInformation должен предоставлять данные для двух экземпляров физических процессоров.
Пожалуйста, дайте мне знать, как получить информацию об отдельном процессоре с помощью win32_PerfFormattedData_Counters_ProcessorInformation, поскольку win32_Processor дает неправильные значения. Мое требование - собрать данные об общем ЦП и проценте загрузки ЦП отдельного экземпляра процессора.