1

我试图从特定主机上的每个虚拟机中提取各种统计信息。一切正常,除了$maxcpu部分....我是一个 PS 菜鸟,所以我只是尝试根据我在风格上拉出的其他统计数据来建模它,但将 CPU 计数器更改为.maximum而不是.average. 通过我的实验,我要么在 CSV 中得到一个空白条目,要么它崩溃并给出以下错误:

The metric counter "cpu.usagemhz.maximum" doesn't exist for entity "XXXX".

foreach ($vmhost in $hosts) { 
    $vms = Get-VM -Location $vmhost
    $vmHost | echo
    foreach ($vm in $vms) {
        "    " + $vm | echo 
        $avgcpu = @{N="Cpu.UsageMhz.Average";E={[Math]::Round((($_ |Get-Stat -Stat cpu.usagemhz.average -Start (Get-Date).AddDays(-7) | Measure-Object Value -Average).Average),2)}}
        $maxcpu = @{N="Cpu.UsageMhz.Maximum";E={[Math]::Round((($_ |Get-Stat -Stat cpu.usagemhz.maximum -Start (Get-Date).AddDays(-7) | Measure-Object Value -Maximum).Maximum),2)}}
        $avgmem = @{N="Mem.Consumed.Average";E={[Math]::Round((($_ |Get-Stat -Stat mem.consumed.average -Start (Get-Date).AddDays(-7) | Measure-Object Value -Average).Average),2)/1000}}

        $vm | Select Host, Name, NumCpu, $avgcpu, $maxcpu, MemoryMB, $avgmem | Export-Csv -Append "somewhere\csv.csv"
    }
}
4

2 回答 2

1

这个旧文档说 cpu.usagemhz.max 在统计级别 4 中可用。@user3290553,如果在 5.5 中发生了变化,请随时解释您是如何获得该信息的。

以防万一它有任何帮助,这里有一个相关问题的一些故障排除记录

编辑- 这是一个5.5 参考。Level列(4)中的 似乎意味着 cpu.usagemhz.max 在 stat 级别 4 中可用。要检查厚/C#/non-web VC 客户端中的 stat 级别,请查看 vCenter Server 设置 > 统计信息。

于 2014-06-18T13:24:39.743 回答
0

问题似乎是我们只运行 vSphere 5.0,但该.maximum功能在 5.5 中可用。

于 2014-06-16T19:40:23.980 回答