Menu Close
Settings Close

Language and Page Formatting Options

17.6. 优化虚拟机 CPU 性能

与主机机器中的物理 CPU 类似,vCPU 对于虚拟机(VM)性能至关重要。因此,优化 vCPU 可能会对虚拟机的资源效率产生重大影响。优化 vCPU:

  1. 调整分配给虚拟机的主机 CPU 数。您可以使用 CLIWeb 控制台进行此操作。
  2. 确保 vCPU 模型与主机的 CPU 型号一致。例如,将 testguest1 虚拟机设置为使用主机的 CPU 型号:

    # virt-xml testguest1 --edit --cpu host-model
  3. 管理内核相同的页面合并(KSM)
  4. 如果您的主机使用非一致性内存访问(NUMA),您也可以为其虚拟机配置 NUMA。这会尽可能将主机的 CPU 和内存进程映射到虚拟机的 CPU 和内存进程。实际上,NUMA 调优为 vCPU 提供更简化的访问分配给虚拟机的系统内存,从而可提高 vCPU 处理效率。

    详情请参阅 在虚拟机中配置 NUMA 以及 Sample vCPU 性能调优场景

17.6.1. 使用命令行界面添加和删除虚拟 CPU

要增加或优化虚拟机(VM)的 CPU 性能,您可以添加或删除分配给虚拟机的虚拟 CPU(vCPU)。

当在运行的虚拟机上执行时,这也被称为 vCPU 热插和热拔。但请注意,RHEL 9 不支持 vCPU 热拔,红帽不建议使用它。

先决条件

  • 可选:查看目标虚拟机中的 vCPU 的当前状态。例如,显示 testguest 虚拟机上的 vCPU 数量:

    # virsh vcpucount testguest
    maximum      config         4
    maximum      live           2
    current      config         2
    current      live           1

    此输出显示 testguest 目前使用 1 个 vCPU,另外 1 个 vCPu 可以热插入以提高虚拟机性能。但是,重新引导后,vCPU testguest 使用的数量会改为 2,而且能够热插 2 个 vCPU。

流程

  1. 调整可附加到虚拟机的 vCPU 数量上限,该数量对虚拟机下次引导生效。

    例如,要将 testguest 虚拟机的最大 vCPU 数量增加到 8:

    # virsh setvcpus testguest 8 --maximum --config

    请注意,最大可能受 CPU 拓扑、主机硬件、虚拟机监控程序和其他因素的限制。

  2. 调整附加到虚拟机的当前 vCPU 数量,最多调整上一步中配置的最大值。例如:

    • 将附加到正在运行的 testguest 虚拟机的 vCPU 数量增加到 4:

      # virsh setvcpus testguest 4 --live

      这会增加虚拟机的性能和主机的 testguest 负载占用,直到虚拟机下次引导为止。

    • 将附加到 testguest 虚拟机的 vCPU 数量永久减少至 1:

      # virsh setvcpus testguest 1 --config

      这会降低虚拟机的性能和 testguest 的主机负载占用。但是,如果需要可热插入虚拟机以暂时提高性能。

验证

  • 确认虚拟机的 vCPU 的当前状态反映了您的更改。

    # virsh vcpucount testguest
    maximum      config         8
    maximum      live           4
    current      config         1
    current      live           4