我在具有2个逻辑CPU内核的虚拟机上运行“ wmic cpu get loadpercentage / every:1”命令,并且仅获得第一个内核的LoadPercentage,如您在所附的映像中看到的: Multicore Issue
如何获得“实际” CPU利用率(即2个内核的平均使用量)?
否则,我又如何单独读取第二个CPU使用情况?
谢谢
答案 0 :(得分:0)
Win32_PerfFormattedData_PerfOS_Processor
class:
Win32_PerfFormattedData_PerfOS_Processor格式化的数据类 性能计数器类提供了根据性能预先计算的数据 监视处理器活动各个方面的计数器。处理器是 执行算术和逻辑运算的计算机部分 计算,启动外围设备上的操作并运行 进程线程。一台计算机可以有多个处理器。的 处理器对象将每个处理器表示为 对象。
该类在系统监视器中显示为Processor对象,并且 返回在系统监视器中找到的相同数据。该类派生其 来自相应原始类的原始数据 Win32_PerfRawData_PerfOS_Processor。原始数据源是 PerfOS性能库。为此动态地提供数据 WmiPerfInst提供程序从性能库对象提供的类。
在Windows cmd
中:
wmic path Win32_PerfFormattedData_PerfOS_Processor where "NOT name = '_Total'" get name, PercentProcessorTime /every:1
答案 1 :(得分:0)
我回答我的问题可能很有趣,但是由于我进行了大量搜索和测试,因此我想再分享一个选择:
我使用了“ typeperf”,发现结果确实接近任务管理器的CPU利用率。
控制台的命令是:
typeperf "\Processor Information(_Total)\% Processor Utility"
或下面的一个批处理文件:
typeperf "\Processor Information(_Total)\%% Processor Utility"
不好的地方是:
1)输出格式不是很方便(例如“ 01/29/2019 21:24:26.000”,“ 8.650791”)
2)如果CPU利用率为100%,则输出为> 100(基本上〜120)
3)如果CPU利用率为1-2%,则输出为〜0.5(基本上为<1.5)