首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Linux上的WMI客户端获取CPU利用率

问从Linux上的WMI客户端获取CPU利用率
EN

Stack Overflow用户
提问于 2013-01-21 14:44:06
回答 1查看 1.3K关注 0票数 0

我正在使用linux的wmi客户端。通过它,您可以执行WQL来远程查询windows服务器。

例如:

代码语言:javascript
复制
 Select * from Win32_ComputerSystem

我要做的是计算CPU使用率。

我一直在从'Win32_PerfFormattedData_Counters_ProcessorInformation'.获取'PercentProcessorTime‘的值我认为这对于具有单CPU的计算机工作得很好,但是我不知道如何计算具有多个CPU的计算机的CPU使用率。

任何帮助都是非常感谢的。

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-21 15:43:23

如果你使用SELECT * FROM Win32_PerfFormattedData_Counters_ProcessorInformation,你会得到一个结果集的列表。第一组是所有CPU的总体值,其余的是各个CPU的值。

这段代码展示了这个想法。请注意,您应该将SYSTEM替换为要查询的计算机的名称。

代码语言:javascript
复制
use strict;
use warnings;

use Win32::OLE;
use Win32::OLE::Variant;

STDOUT->autoflush;

my $wmi = Win32::OLE->GetObject('winmgmts:\\\\SYSTEM\root\cimv2') or die Win32::OLE->LastError;
my $list = $wmi->ExecQuery('SELECT * FROM Win32_PerfFormattedData_Counters_ProcessorInformation');
my $n = 0;
for my $cpu (in $list) {
  printf "%s: %d%%\n", $n ? "CPU$n" : ' ALL', $cpu->PercentProcessorTime;
  $n++;
}

输出

代码语言:javascript
复制
 ALL: 8%
CPU1: 8%
CPU2: 12%
CPU3: 6%
CPU4: 12%
CPU5: 6%
CPU6: 6%
CPU7: 6%
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14433584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档