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

配置XML

配置NUMA感知时可以指定虚拟NUMA节点(vNode)的内存在Host上的分配位置,实现内存的分块绑定,同时配合vCPU绑定,使vNode上的vCPU和内存在同一个物理NUMA node上。下面给出虚拟机XML参考配置。

 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
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>16</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='24'/>
    <vcpupin vcpu='1' cpuset='25'/>
    <vcpupin vcpu='2' cpuset='26'/>
    <vcpupin vcpu='3' cpuset='27'/>
    <vcpupin vcpu='4' cpuset='28'/>
    <vcpupin vcpu='5' cpuset='29'/>
    <vcpupin vcpu='6' cpuset='30'/>
    <vcpupin vcpu='7' cpuset='31'/>
    <vcpupin vcpu='8' cpuset='32'/>
    <vcpupin vcpu='9' cpuset='33'/>
    <vcpupin vcpu='10' cpuset='34'/>
    <vcpupin vcpu='11' cpuset='35'/>
    <vcpupin vcpu='12' cpuset='36'/>
    <vcpupin vcpu='13' cpuset='37'/>
    <vcpupin vcpu='14' cpuset='38'/>
    <vcpupin vcpu='15' cpuset='39'/>
    <emulatorpin cpuset='24-39'/>
  </cputune>
  <numatune>
    <memnode cellid='0' mode='strict' nodeset='0'/>
    <memnode cellid='1' mode='strict' nodeset='1'/>
  </numatune>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' dies='1' clusters='4' cores='4' threads='1'/>
    <numa>
      <cell id='0' cpus='0-7' memory='4194304' unit='KiB'/>
      <cell id='1' cpus='8-15' memory='4194304' unit='KiB'/>
    </numa>
  </cpu>

配置步骤说明:

  1. 设置vCPU与物理机CPU一一对应,即1:1绑核。
    如下配置将虚拟机内存设置为8G,vcpu数量设置为16,并将vcpu0-15与对应的宿主机CPU24-39绑定。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
      <memory unit='KiB'>8388608</memory>
      <currentMemory unit='KiB'>8388608</currentMemory>
      <vcpu placement='static'>16</vcpu>
      <cputune>
        <vcpupin vcpu='0' cpuset='24'/>
        <vcpupin vcpu='1' cpuset='25'/>
        <vcpupin vcpu='2' cpuset='26'/>
        <vcpupin vcpu='3' cpuset='27'/>
        <vcpupin vcpu='4' cpuset='28'/>
        <vcpupin vcpu='5' cpuset='29'/>
        <vcpupin vcpu='6' cpuset='30'/>
        <vcpupin vcpu='7' cpuset='31'/>
        <vcpupin vcpu='8' cpuset='32'/>
        <vcpupin vcpu='9' cpuset='33'/>
        <vcpupin vcpu='10' cpuset='34'/>
        <vcpupin vcpu='11' cpuset='35'/>
        <vcpupin vcpu='12' cpuset='36'/>
        <vcpupin vcpu='13' cpuset='37'/>
        <vcpupin vcpu='14' cpuset='38'/>
        <vcpupin vcpu='15' cpuset='39'/>
        <emulatorpin cpuset='24-39'/>
      </cputune>
    
  2. 配置虚拟机NUMA。
    为虚拟机配置两个NUMA节点,分别为node0和node1。
    1
    2
    3
    4
      <numatune>
        <memnode cellid='0' mode='strict' nodeset='0'/>
        <memnode cellid='1' mode='strict' nodeset='1'/>
      </numatune>
    
  3. 配置NUMA内部结构。
    将两个NUMA节点内存均设置为4G,且node0包含cpu0-7,node1包含cpu8-15。
    1
    2
    3
    4
    5
    6
    7
      <cpu mode='host-passthrough' check='none'>
        <topology sockets='1' dies='1' clusters='4' cores='4' threads='1'/>
        <numa>
          <cell id='0' cpus='0-7' memory='4194304' unit='KiB'/>
          <cell id='1' cpus='8-15' memory='4194304' unit='KiB'/>
        </numa>
      </cpu>