设置虚拟机配置文件

本章节用于Nginx虚拟机场景的调优,其他场景无需执行。

目的

配置虚拟机的CPU、内存、网络。

方法

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

    以虚拟机vm1为例。

    1
    virsh edit vm1
    

  2. 设置vcpu与物理CPU绑定。

    1
    2
    3
    4
    5
    6
    7
    <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 vcpu与物理CPU绑定参数说明

    参数

    说明

    cpuset

    表示物理核

    vcpu

    表示虚拟核

  3. 设置NUMA绑定。

    1
    2
    3
    <numatune>
    <memory mode='strict' nodeset='0'/>
    </numatune>
    

    参数说明如表1所示。

    nodeset:表示物理机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。

    如果是先启动了虚拟机安装了操作系统,之后物理机(宿主机)再给虚拟机配置了网卡直通,需要在虚拟机安装网卡的驱动。参考物理机的安装步骤即可。