7.2. libvirt の NUMA 調整
7.2.1. NUMA の VCPU pinning
以下の XML 設定例では、 ドメインプロセスが物理 CPU 0 から 7 に固定されています。 vCPU スレッドはそれ自体の cpusetに固定されています。 たとえば、 vCPU0 は物理 CPU0 に、 vCPU1 は物理 CPU 1 にといった具合に固定されています。
<vcpu cpuset='0-7'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='2'/> <vcpupin vcpu='3' cpuset='3'/> <vcpupin vcpu='4' cpuset='4'/> <vcpupin vcpu='5' cpuset='5'/> <vcpupin vcpu='6' cpuset='6'/> <vcpupin vcpu='7' cpuset='7'/> </cputune>
vcpu と vcpupin のタグ間には直接的な関係があります。 vcpupin オプションを指定しないと、 その値が自動的に確定され親となる vcpu タグオプションから継承されます。 以下の設定には vcpu 5 の <vcpupin> が足りません。 したがって、 vCPU5 は親タグの <vcpu>: で指定しているように物理 CPU の 0 から 7 に固定されます。
<vcpu cpuset='0-7'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='2'/> <vcpupin vcpu='3' cpuset='3'/> <vcpupin vcpu='4' cpuset='4'/> <vcpupin vcpu='6' cpuset='6'/> <vcpupin vcpu='7' cpuset='7'/> </cputune>