2016-07-14 3 views
2

Я пытаюсь получить счетчик производительности с компьютера, и до сих пор я использовал Get-Counter, но некоторое время копался в MSDN и узнал, что WMI ObjectWin32_processor имеет свойство LoadPercentage. Но после обмана я заметил, что он показывает только значение нагрузки для CPU0 (1 из 2 ядер). Итак, можно ли получить LoadPercentage из других ядер?Win32_processor показывает только CPU0

+0

Попробуйте 'Get-WmiObject Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors | fl': 1 процессор, несколько ядер, но 1 значение LoadPercentage. Не уверен, что этот класс может дать вам то, что вы хотите. – sodawillow

+1

См. Этот вопрос: http://stackoverflow.com/questions/38384658/get-cpu-usage-for-each-core-using-the-windows-command-line – sodawillow

ответ

1

Имя CPU0, что вы видите, это Referance к процессор имя/номер не ядро ​​ имя/номер.

LoadPercentage свойства является общей мощностью нагрузки каждого процессора (CPU), то есть сумма всех ядер усредненных до последней секунды (Ref).

Так, чтобы ответить на ваш вопрос, вы не будете иметь возможность получить индивидуальные ядра нагрузочная образуют Win32_processorWMI объект, так как LoadPercentage уже в среднем все сердечников нагрузки в результате свойства.

Как вы заявили, вы можете использовать Get-Counter получить эту информацию:

Get-Counter '\Processor(*)\% Processor Time' | select -ExpandProperty CounterSamples 

Результат:

Path           InstanceName  CookedValue 
----           ------------  ----------- 
\\fpw10rjol1\processor(0)\% processor time  0   40.0035384989971 
\\fpw10rjol1\processor(1)\% processor time  1   27.6965720372529 
\\fpw10rjol1\processor(2)\% processor time  2   23.0814596140988 
\\fpw10rjol1\processor(3)\% processor time  3   9.23612234463661 
\\fpw10rjol1\processor(_total)\% processor time _total  25.0044182009598 
+0

Я использую 'CPUSTRES.EXE' [от здесь] (https://blogs.msdn.microsoft.com/vijaysk/2012/10/26/tools-to-simulate-cpu-memory-disk-load/) для имитации загрузки процессора. После применения максимальной нагрузки только то, что я считаю «CPU0», '(Get-WmiObject win32_processor -computer $ desktop) .LoadPercentage' возвращает более 90%. При применении максимальной нагрузки только к другому _core_ он возвращается ниже 5%. Для информации, я делаю это на виртуальной машине. – Syphirint

Смежные вопросы