非常にメモリ消費量が多い仮想マシンに対し、詳細オプションを使用して手動でデフォルトの仮想 CPU 設定をオーバーライドできます。

これらの詳細オプションは、仮想マシン構成ファイルに追加できます。

表 1. 仮想 NUMA 制御のための詳細オプション

オプション

説明

デフォルト値

cpuid.coresPerSocket

仮想 CPU ソケットあたりの仮想コア数の決定。この値が 2 以上の場合、仮想マシンに仮想 NUMA トポロジがあれば、仮想 NUMA ノードのサイズも決定します。各物理ホストの仮想 NUMA トポロジを正確に知っている場合、このオプションを設定できます。

1

numa.vcpu.maxPerVirtualNode

cpuid.coresPerSocket は 2 のべき乗で制約が強すぎる場合、直接、numa.vcpu.maxPerVirtualNode を設定できます。このケースでは、cpuid.coresPerSocket は設定しません。

8

numa.autosize

このオプションを設定するとき、仮想 NUMA トポロジには、仮想ノードあたり、各物理ノードのコア数と同数の仮想 CPU があります。

FALSE

numa.autosize.once

これらの設定で仮想マシンのテンプレートを作成した場合、その後仮想マシンをパワーオンするたびに、設定は同じであることが保証されます。仮想 NUMA トポロジは、仮想マシンの仮想 CPU の構成数が変更されると再評価されます。

TRUE

numa.vcpu.min

仮想 NUMA トポロジを生成するために必要な最小限の、仮想マシン内の仮想 CPU 数。

9

注:

numa.autosize を TRUE に設定し、構成が手動またはスクリプトで設定されている場合、ゲストの一部に、動的な変更を処理できないものがある可能性があります。

たとえば、numactl システム ユーティリティで構成された Linux アプリケーションが設定されており、ノードあたり 4 個のコアがある 1 台の物理ホスト上でテストされたとします。このホストは、8 個の仮想 CPU がある 1 台の仮想マシンのために、2 つの NUMA ノードが必要です。同じ仮想マシンが、ノードあたり 8 個のコアがあるシステム上で実行される場合、これは vMotion 操作中に起きる可能性があり、numa.autosize が TRUE に設定されていると、1 つの仮想 NUMA ノードのみが作成されます (2 つの仮想 NUMA ノードではない)。numactl が 2 番目の仮想 NUMA ノードを参照している場合、その操作は失敗します。

これを回避するには、スクリプトはまずクエリ numactl --hardware を実行する能力が必要です。または、NUMA トポロジを明示的に設定するか、デフォルトの numa.autosize.once 設定を有効にする必要があります。