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

虚拟机调优

目的

修改虚拟机配置文件:配置虚拟机的CPU、内存、网卡。

方法

  1. 编辑虚拟机配置文件。

    以虚拟机vm1为例。

    1
    virsh edit vm1
    
    • 该命令为打开vm1的配置文件,后续步骤均在此基础上完成,修改完成后按“Esc”键,输入:wq!,按“Enter”保存并退出编辑即可。
    • 配置文件需重启虚拟机生效:
      1
      2
      virsh shutdown vm1
      virsh start vm1
      
  2. 设置vCPU与物理CPU绑定。
    1
    2
    3
    4
    5
    6
    7
    8
    <vcpu placement='static' cpuset='0-3'>4</vcpu>
    <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
    <emulatorpin cpuset='0-3'/>
    </cputune>
    

    脚本中参数说明如表1所示。

    表1 参数说明

    参数

    说明

    cpuset

    表示物理核

    vCPU

    表示虚拟核

  3. 设置 NUMA 绑定。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <numatune>
    <memnode cellid='0' mode='strict' nodeset='0'/>
    </numatune>
    <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='4' threads='1'/>
    <numa>
    <cell id='0' cpus='0-3' memory='12582912' unit='KiB'/>
    </numa>
    </cpu>
    

    脚本中参数说明如表2所示。

    表2 NUMA绑定参数说明

    参数

    说明

    nodeset

    表示物理机numa node

    cellid

    表示虚拟机numa node

  4. 设置PCIe网卡直通。
    1
    2
    3
    4
    5
    <hostdev mode='subsystem' type='pci' managed='yes'>
    <source>
    <address domain='0x0000' bus='0x82' slot='0x00' function='0x0'/>
    </source>
    </hostdev>
    

    其中,“domain”、“bus”、“slot”和“function”是对应物理网卡的信息,可以执行lspci或者ethtool -i 网卡名命令查看。

    1
    lspci
    

    输出如下结果,只需关注最左侧的数字:

    1
    “82:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45)

    网卡的bus-info是16进制数,由82:00:0可以看出,bus为0x82,slot为0x00,function为0x0,domain为0x0000。

  5. 设置静态大页。
    1. 宿主机配置静态大页。
      在Kernel启动时的命令行添加配置参数,即在“/boot”目录下的grub.cfg文件添加如下设置:
      1
      transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=200
      

      配置1G的hugepage,需要当前宿主机页表大小为4K。

    2. 设置内存大页配置。
      1
      2
      3
      4
      5
      <memoryBacking>
      <hugepages>
      <page size= 1048576’ unit=’KiB’ nodeset=’0’/>
      </hugepages>
      </memoryBacking>