14.13.6. 配置虚拟 CPU 数
要修改分配给客户端虚拟机的 CPU 数量,请使用 virsh setvcpus 命令:
# virsh setvcpus {domain-name, domain-id or domain-uuid} count [[--config] [--live] | [--current] [--guest]
可以为 virsh setvcpus 命令设置以下参数:
{domain-name, domain-id or domain-uuid}
- 指定虚拟机。count
- 指定要设置的虚拟 CPU 数量。注意count
值不能超过创建时分配给客户机虚拟机的 CPU 数量。它也可能受主机或虚拟机监控程序的限制。对于 Xen,如果域是泛虚拟化,您只能调整正在运行的域的虚拟 CPU。--live
- 未指定任何选项,则使用默认选项。配置更改对运行的 guest 虚拟机生效。如果 vCPU 数量增加,则这称为 热插拔,如果将其减少,则将其 热拔。重要vCPU 热拔功能是一个技术预览。因此,它不被支持,且不建议在高值部署中使用。--config
- 配置更改在下次客户端重启时生效。如果虚拟机监控程序支持,则可以同时指定--config
和--live
选项。--current
- 配置更改对 guest 虚拟机的当前状态生效。如果在运行的客户机中使用,它充当--live
(如果在已关闭客户端中使用),它会充当--config
。--maximum
- 设置一个最大 vCPU 限值,可在下次客户端重启时热插。因此,它只能与--config
选项一起使用,而不与--live
选项一起使用。--guest
QEMU 客户机代理直接修改正在运行的客户机中的 vCPU 数量,而不是热拔,而是通过启用或禁用 vCPU 来修改正在运行的客户机中的 vCPU 数量。这个选项不能与count
值一起使用,大于gueet 中的当前 vCPU 数量,并使用--guest
设置的配置会在客户机重启时重置。
例 14.4. vCPU 热插和热拔
要热插拔 vCPU,请在带有一个 vCPU 的客户机上运行以下命令:
virsh setvcpus guestVM1 2 --live
这会将 guestVM1 的 vCPU 数量增加到两个。这个变化是在 guestVM1 运行时执行的,如
--live
选项所示。
要从同一运行的客户机中热拔一个 vCPU,请运行以下命令:
virsh setvcpus guestVM1 1 --live
但请注意,目前使用 vCPU 热拔可能会导致在进一步修改 vCPU 计数时出现问题。