9.3.3. ドメインプロセス
Red Hat Enterprise Linux で提供されているように、libvirt は libnuma を使用してドメインプロセスのメモリーバインディングポリシーを設定します。これらのポリシーのノードセットは、static (ドメイン XML で指定) または auto (numad クエリーによって設定) のいずれかに設定できます。これらを
<numatune>
タグ内で設定する方法の例は、以下の XML 設定を参照してください。
<numatune> <memory mode='strict' placement='auto'/> </numatune>
<numatune> <memory mode='strict' nodeset='0,2-3'/> </numatune>
libvirt は sched_setaffinity(2) を使用して、ドメインプロセスの CPU バインディングポリシーを設定します。cpuset オプションは、static (ドメイン XML で指定) または auto (numad クエリーによって設定) のいずれかです。これらを
<vcpu>
タグ内で設定する方法の例は、以下の XML 設定を参照してください。
<vcpu placement='auto'>8</vcpu>
<vcpu placement='static' cpuset='0-10,ˆ5'>8</vcpu>
<vcpu>
と <numatune>
に使用する配置モードには、暗黙的な継承ルールがあります。
<numatune>
の配置モードは、デフォルトでは<vcpu>
と同じ配置モードに設定され、<nodeset>
が指定されている場合は static です。- 同様に、
<vcpu>
の配置モードは、デフォルトでは<numatune>
と同じ配置モードに設定され、<cpuset>
が指定されている場合は static です。
つまり、ドメインプロセスの CPU チューニングとメモリーチューニングは別々に指定および定義できますが、他の配置モードに依存するように設定することもできます。
起動時にすべての vCPU をピニングせずに、選択した数の vCPU を起動するように numad を使用してシステムを設定することもできます。
たとえば、32 個の vCPU を備えたシステムで起動時に 8 個の vCPU のみを有効にするには、次のように XML を設定します。
<vcpu placement='auto' current='8'>32</vcpu>
注記
vcpu と numatune の詳細については、次の URL を参照してください: http://libvirt.org/formatdomain.html#elementsCPUAllocation および http://libvirt.org/formatdomain.html#elementsNUMATuning