Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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>