9.3.4. 域 vCPU 线程
除了调优域进程外,libvirt 还支持 XML 配置中每个 vcpu 线程的固定策略设置。在
<cputune>
标签内为每个 vcpu 线程设置固定策略:
<cputune> <vcpupin vcpu="0" cpuset="1-4,ˆ2"/> <vcpupin vcpu="1" cpuset="0,1"/> <vcpupin vcpu="2" cpuset="2,3"/> <vcpupin vcpu="3" cpuset="0,4"/> </cputune>
在此标签中,libvirt 使用 cgroup 或 sched_setaffinity(2) 将 vcpu 线程固定到指定的 cpuset。
注意
有关
<cputune>
的详情,请查看以下 URL: http://libvirt.org/formatdomain.html#elementsCPUTuning
另外,如果您需要设置一个 vCPU 多于单个 NUMA 节点的虚拟机,请配置主机,以便客户机能够检测到主机上的 NUMA 拓扑。这允许 1:1 个 CPU、内存和 NUMA 节点的映射。例如,这可以与具有 4 个 vCPU 和 6 GB 内存的客户机应用,以及具有以下 NUMA 设置的主机:
4 available nodes (0-3) Node 0: CPUs 0 4, size 4000 MiB Node 1: CPUs 1 5, size 3999 MiB Node 2: CPUs 2 6, size 4001 MiB Node 3: CPUs 0 4, size 4005 MiB
在这种情况下,使用以下域 XML 设置:
<cputune> <vcpupin vcpu="0" cpuset="1"/> <vcpupin vcpu="1" cpuset="5"/> <vcpupin vcpu="2" cpuset="2"/> <vcpupin vcpu="3" cpuset="6"/> </cputune> <numatune> <memory mode="strict" nodeset="1-2"/> </numatune> <cpu> <numa> <cell id="0" cpus="0-1" memory="3" unit="GiB"/> <cell id="1" cpus="2-3" memory="3" unit="GiB"/> </numa> </cpu>