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

PowerCLIでCPUアフィニティ設定(ESXi 5.x)

$
0
0

ESXi で稼働するVMに対して、ゲストOSにインストールするライセンス制限の都合などで
CPUアフィニティ(VMの使用CPUを固定する)をかけることがあります。

 

ためしに、PowerCLI(5.1)でCPUアフィニティを設定してみました。

 

設定方法

 

今回、ESXiには8CPU(Cpu0~Cpu7)があり、
それを2つのVM(vm01,vm02)に4vCPUずつ割り当ててみます。

★vm01に、CPU0~3 をわりあて。
PowerCLI C:\> Get-VM vm01 | Get-VMResourceConfiguration | Set-VMResourceConfiguration -CpuAffinityList 0,1,2,3

 

★vm01に、CPU4~7 をわりあて。
PowerCLI C:\> Get-VM vm02 | Get-VMResourceConfiguration | Set-VMResourceConfiguration -CpuAffinityList 4,5,6,7

 

★CPUアフィニティ設定を確認します。それぞれのVMにCPUが割り当てられています。
PowerCLI C:\> (get-vm * | get-View)| select Name,{$_.Config.CpuAffinity.AffinitySet}

Name                                    $_.Config.CpuAffinity.AffinitySet
----                                    ---------------------------------
vm01                                    {0, 1, 2, 3}
vm02                                    {4, 5, 6, 7}

 

CPUアフィニティは、

下記のようなオプションで割り当てることもできます。

※「-CpuAffinityList」ではなく、「-CpuAffinity」になります。

PowerCLI C:\> Get-VM vm01 | Get-VMResourceConfiguration | Set-VMResourceConfiguration -CpuAffinity Cpu0,Cpu1,Cpu2,Cpu3
PowerCLI C:\> Get-VM vm01 | Get-VMResourceConfiguration | Set-VMResourceConfiguration -CpuAffinity Cpu4,Cpu5,Cpu6,Cpu7

 


ちなみに、CPUアフィニティを解除するためには、
「Set-VMResourceConfiguration -CpuAffinity NoAffinity」とします。

PowerCLI C:\> Get-VM vm01 | Get-VMResourceConfiguration | Set-VMResourceConfiguration -CpuAffinity NoAffinity

 

注意点

 

CPUアフィニティはVM単位です。
そのため、1つのVMに設定しても、ESXi上のそれ以外のVMはデフォルトですべてのCPUを使用します。

 

試しに、ESXi にログインして、 esxtopで確認してみました。

esxtop起動 → 「大文字V(VMだけ表示)」→「f とiを押す(表示フィールド選択)」

とすると、CPUアフィニティの割り当て状況(AFFINITY_BIT_MASK) の列が確認できるようになります。

 

CPUアフィニティをかけていない状態ではすべてのCPUが使用されます。(0~7)
affinity1.png

vm01にだけCPUアフィニティ(CPU 0~3)をかけた状態です。

vm02は、まだすべてのCPU(0~7)を使用しています。

affinity2.png

vm01とvm02それぞれにアフィニティをかけた状態です。

VMが、別のCPUを使用している様子が見えます。

affinity3.png

 

ちなみに、CPUアフィニティをかけると

その分ハイパーバイザの自由なCPUスケジューリング(vCPUへのCPU割り当て)を邪魔してしまうらしいです。

管理面や性能面(ゲストのライセンス制限以外の面)では、

CPUアフィニティをかけない方がよいケースが多そうです。

 

以上、PowerCLIでVMにCPUアフィニティをかけてみました。


Viewing all articles
Browse latest Browse all 3805

Trending Articles



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