15.7.6. 配置虚拟 CPU 上限


您可以使用虚拟 CPU (vCPU)上限来限制虚拟机(VM)可以使用的 CPU 资源量。vCPU 上限可通过防止单个虚拟机过度使用主机的 CPU 资源来提高整体性能,并使 hypervisor 更轻松地管理 CPU 调度。

流程

  1. 查看主机上当前的 vCPU 调度配置。

    # virsh schedinfo <vm_name>
    
    Scheduler      : posix
    cpu_shares     : 0
    vcpu_period : 0
    vcpu_quota : 0
    emulator_period: 0
    emulator_quota : 0
    global_period  : 0
    global_quota   : 0
    iothread_period: 0
    iothread_quota : 0
  2. 要为虚拟机配置一个绝对 vCPU 上限,请设置 vcpu_periodvcpu_quota 参数。两个参数都使用一个数字值,其代表以微秒为单位的持续时间。

    1. 使用 virsh schedinfo 命令设置 vcpu_period 参数。例如:

      # virsh schedinfo <vm_name> --set vcpu_period=100000

      在本例中,vcpu_period 被设置为 100,000 微秒,这意味着调度程序在此时间间隔内强制实施 vCPU 上限。

      您还可以使用 --live --config 选项来配置一个正在运行的虚拟机,而无需重启它。

    2. 使用 virsh schedinfo 命令设置 vcpu_quota 参数。例如:

      # virsh schedinfo <vm_name> --set vcpu_quota=50000

      在本例中,vcpu_quota 被设置为 50,000 微秒,它指定虚拟机在 vcpu_period 时间间隔内可以使用的最大 CPU 时间。在本例中,vcpu_quota 被设置为 vcpu_period 的一半,因此虚拟机在此间隔内可使用最多 50% 的 CPU 时间。

      您还可以使用 --live --config 选项来配置一个正在运行的虚拟机,而无需重启它。

验证

  • 检查 vCPU 调度参数是否有正确的值。

    # virsh schedinfo <vm_name>
    
    Scheduler      : posix
    cpu_shares     : 2048
    vcpu_period    : 100000
    vcpu_quota     : 50000
    ...
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部