Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

PowerCLI で ESXiのCPUオーバコミット「見える化」

$
0
0

ESXiで起動中のVMがどれくらいCPUオーバーコミットか「見える化」してみようと思い

簡単なPowerCLI スクリプトを作成してみました。

 

get_esxi_cpuoc.ps1

Get-VMHost | % {

    $hv = $_

    $hv_pcpu = $hv.NumCpu

    $hv_vcpus = 0

    $hv | Get-VM | where {$_.PowerState -eq "PoweredOn"} | % {

        $vm = $_

        $hv_vcpus += $vm.NumCpu

    }

    "$hv では、 $hv_pcpu 物理コアに $hv_vcpus vCPUあります。"

    "CPU物理コアのオーバーコミット: " + ($hv_vcpus / $hv_pcpu * 100) + "%"

    "vCPU: " + ("■" * $hv_vcpus)

    "pCPU: " + ("□" * $hv_pcpu)

} | ft -AutoSize

PowerCLI で接続中のvCenter/ESXi から、すべてのESXiについて情報取得します。

起動中VM(PowerState = PoweredOn のもの)に設定されている、

すべてのvCPU数を足して、物理CPUコア数と並べて表示しています。

 

実行例

2台のESXiに接続して実行してみたイメージです。

ESXi(例だと、esxi243 と esxi244)は、それぞれHWスペックが異なります。

 

vCPUと、pCPU(物理CPUコア)のゲージ的なものが並べて表示されます。
一コマ、1CPU(vCPU/pCPU)です。

 

基本的には、vCPUごとにpCPUがずっと固定されているわけではありません。

特にCPUアフィニティを設定していない場合は、

上段に表示された vCPU が、空いている下段の pCPUのどれかに割り当てられる感じです。

PowerCLI> Connect-VIServer esxi243,esxi244

PowerCLI> .\get_esxi_cpuoc.ps1
esxi244 では、 4 物理コアに 40 vCPUあります。
CPU物理コアのオーバーコミット: 1000%
vCPU: ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
pCPU: □□□□
esxi243 では、 2 物理コアに 12 vCPUあります。
CPU物理コアのオーバーコミット: 600%
vCPU: ■■■■■■■■■■■■
pCPU: □□

※接続するときの画面表示は省略しています。


ちなみに、ESXi上のVM全体で物理CPUコア数よりも多くvCPU割り当てした状態でも、

すぐにCPUリソースに余裕がなくなるというわけではありません。

上記の例でもオーバーコミットは1000%と600%ですが、

実際のCPUリソースにはまだ余裕があります。CpuTotalMhz のうち、CpuUsageMhz の分しか使用していません。

PowerCLI> Get-VMHost | select Name,NumCpu,CpuUsageMhz,CpuTotalMhz | ft -AutoSize

Name    NumCpu CpuUsageMhz CpuTotalMhz
----    ------ ----------- -----------
esxi244      4       10902       13568
esxi243      2        1087        2594


以上です。

CPUオーバーコミット具合を見てみる話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>