鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

CPU绑核调优

在2个NUMA节点场景中,调整虚拟机vCPU绑定的物理机所在Die与vCPU拓扑,确保虚拟机的高性能。

物理机设置成2个NUMA节点后,每个NUMA节点中包含两个CPU Die。两个CPU Die之间的缓存与内存读写存在性能损失,因此建议在虚拟机vCPU绑定的物理CPU核心不能跨越Die。以鲲鹏920新型号处理器7270Z为例,该型号处理器一个CPU Die包含64个CPU核心。如下图所示,存在两个NUMA节点,其中CPU 0-127为NUMA 0节点。而NUMA 0节点包含两个CPU Die,0-63 CPU为第一个CPU Die的核心,64-127 CPU为第二个CPU Die的核心。

当虚拟机的规格小于64U时,虚拟机最佳性能的绑核配置为所有vCPU绑定在第一个Die或者第二个Die的物理CPU核心上,vCPU不能同时绑定在两个Die的物理CPU核心上。

以下是一个CPU绑核调优的示例。在本示例中,cputune模块中对vCPU与物理CPU核心进行1:1绑定,并且所有物理CPU核心均处于同一个CPU Die。在numatune模块中,只设置单虚拟机NUMA节点,nodeset指向物理机核心所在NUMA节点。在虚拟机的cpu模块中,设置Socket数量为1,Die数量为1,Clusters数量为4,每个Cluster中的vCPU数量为4,超线程数量为2。修改虚拟机xml操作参考4个NUMA节点场景配置Cluster调优

该示例是基于32C64G规格的虚拟机进行CPU绑核调优,请根据实际需求和虚拟机规格对参数进行相应的调整。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<domain type = 'KVM'>
...
  <vcpu placement='static'>32</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='64'/>
    <vcpupin vcpu='1' cpuset='65'/>
    <vcpupin vcpu='2' cpuset='66'/>
    <vcpupin vcpu='3' cpuset='67'/>
    <vcpupin vcpu='4' cpuset='68'/>
    <vcpupin vcpu='5' cpuset='69'/>
    <vcpupin vcpu='6' cpuset='70'/>
    <vcpupin vcpu='7' cpuset='71'/>
    <vcpupin vcpu='8' cpuset='72'/>
    <vcpupin vcpu='9' cpuset='73'/>
    <vcpupin vcpu='10' cpuset='74'/>
    <vcpupin vcpu='11' cpuset='75'/>
    <vcpupin vcpu='12' cpuset='76'/>
    <vcpupin vcpu='13' cpuset='77'/>
    <vcpupin vcpu='14' cpuset='78'/>
    <vcpupin vcpu='15' cpuset='79'/>
    <vcpupin vcpu='16' cpuset='80'/>
    <vcpupin vcpu='17' cpuset='81'/>
    <vcpupin vcpu='18' cpuset='82'/>
    <vcpupin vcpu='19' cpuset='83'/>
    <vcpupin vcpu='20' cpuset='84'/>
    <vcpupin vcpu='21' cpuset='85'/>
    <vcpupin vcpu='22' cpuset='86'/>
    <vcpupin vcpu='23' cpuset='87'/>
    <vcpupin vcpu='24' cpuset='88'/>
    <vcpupin vcpu='25' cpuset='89'/>
    <vcpupin vcpu='26' cpuset='90'/>
    <vcpupin vcpu='27' cpuset='91'/>
    <vcpupin vcpu='28' cpuset='92'/>
    <vcpupin vcpu='29' cpuset='93'/>
    <vcpupin vcpu='30' cpuset='94'/>
    <vcpupin vcpu='31' cpuset='95'/>
    <emulatorpin cpuset='64-95'/>
  </cputune>
...
  <numatune>
    <memnode cellid='0' mode='strict' nodeset='0'/>
  </numatune>
...
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' dies='1' clusters='4' cores='4' threads='2'/>
...
  </cpu>
...
<domain>