是否可以在不先停止 Linux 上的情况下更改 KVM 虚拟机上的 VCPU 数量? Linux 内核要求添加和删除 CPU(内核中的CPU热插拔)对于物理机(在支持该功能的硬件上),但我在虚拟机上找不到任何内容以及如何为正在运行的机器分配更多/更少的资源。
答案1
可以,但最多只能达到虚拟机定义中的最大 vCPU 数量。增加最大数量需要关闭。
例如,此虚拟机有两个 vCPU,最多为 8 个。增加到超过 8 个需要关闭。
<vcpu placement='static' current='2'>8</vcpu>
答案2
为了更改 VCPU 分配,您需要执行以下操作
sudo virsh setvcpus [vm_name] [num_vcpus] --current
从机器内部运行
sudo udevadm monitor -k
您将看到一系列类似于以下内容的消息
KERNEL[836.518069] add /devices/system/cpu/cpu4 (cpu)
KERNEL[836.518095] bind /devices/system/cpu/cpu4 (cpu)
KERNEL[836.526936] add /module/intel_rapl_perf (module)
KERNEL[836.534023] remove /module/intel_rapl_perf (module)
KERNEL[836.561229] add /module/intel_uncore (module)
KERNEL[836.568971] remove /module/intel_uncore (module)
KERNEL[836.578821] add /module/intel_cstate (module)
KERNEL[836.592990] remove /module/intel_cstate (module)
KERNEL[836.603800] add /module/intel_rapl (module)
KERNEL[836.604120] add /devices/virtual/powercap/intel-rapl (powercap)
KERNEL[836.604967] remove /devices/virtual/powercap/intel-rapl (powercap)
KERNEL[836.613034] remove /module/intel_rapl (module)